springboot数据库配置类(druid)
package com.jy..config; import com.alibaba.druid.pool.DruidDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; import java.sql.SQLException; import java.util.Properties; @Configuration @EnableTransactionManagement public class DataSourceConfig { private static final String HIBERNATE_DIALECT = "hibernate.dialect"; private static final String HIBERNATE_SHOW_SQL = "hibernate.show.sql"; private static final String HIBERNATE_DDL_AUTO = "hibernate.ddl-auto"; private final static Logger log = LoggerFactory.getLogger(DataSourceConfig.class); @Value("${spring.datasource.driverClassName}") private String driver; @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.jpa.properties.hibernate.dialect}") private String dialect; @Value("${spring.jpa.hibernate.ddl-auto}") private String hbm2ddlAuto; @Value("${spring.jpa.show-sql}") private Boolean showSql; @Value("${spring.datasource.initialSize}") private int initialSize; @Value("${spring.datasource.minIdle}") private int minIdle; @Value("${spring.datasource.maxActive}") private int maxActive; @Value("${spring.datasource.maxWait}") private int maxWait; @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.minEvictableIdleTimeMillis}") private long minEvictableIdleTimeMillis; @Value("${spring.datasource.validationQuery}") private String validationQuery; @Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle; @Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow; @Value("${spring.datasource.testOnReturn}") private boolean testOnReturn; @Value("${spring.datasource.filters}") private String filters; @Value("${spring.datasource.connectionProperties}") private String connectionProperties; @Bean(name = "dataSource") public DataSource configureDataSource() { DruidDataSource ds = new DruidDataSource(); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); ds.setInitialSize(initialSize); ds.setMinIdle(minIdle); ds.setMaxActive(maxActive); ds.setMaxWait(maxWait); ds.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); ds.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); ds.setValidationQuery(validationQuery); ds.setTestWhileIdle(testWhileIdle); ds.setTestOnBorrow(testOnBorrow); ds.setTestOnReturn(testOnReturn); ds.setPoolPreparedStatements(false); try { ds.setFilters(filters); }catch (SQLException e){ log.error("datasource Initialization produce error.."); } ds.setConnectionProperties("druid.stat.slowSqlMillis=3000"); ds.setRemoveAbandoned(true); ds.setRemoveAbandonedTimeout(1800); ds.setLogAbandoned(true); return ds; } @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); entityManagerFactoryBean.setDataSource(configureDataSource()); //实体存放的package位置 entityManagerFactoryBean.setPackagesToScan("com.jy.entity"); entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); Properties jpaProperties = new Properties(); jpaProperties.put(HIBERNATE_DIALECT, dialect); jpaProperties.put(HIBERNATE_DDL_AUTO, hbm2ddlAuto); jpaProperties.put(HIBERNATE_SHOW_SQL, showSql); jpaProperties.put("use_query_cache", "true"); jpaProperties.put("use_second_level_cache", "false"); jpaProperties.put("enable_lazy_load_no_trans", "true"); entityManagerFactoryBean.setJpaProperties(jpaProperties); return entityManagerFactoryBean; } @Bean(name = "transactionManager") public PlatformTransactionManager annotationDrivenTransactionManager() { return new JpaTransactionManager(); } }
人生没有彩排,每天都是现场直播!