您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關druid中怎么配置數據連接池,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency>
spring: ####整合數據庫層 datasource: driver-class-name: com.mysql.cj.jdbc.Driver name: demo url: jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource druid: # 初始連接數 initialSize: 5 # 最小連接池數量 minIdle: 10 # 最大連接池數量 maxActive: 20 # 配置獲取連接等待超時的時間 maxWait: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一個連接在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一個連接在池中最大生存的時間,單位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置檢測連接是否有效 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 設置白名單,不填則允許所有訪問 allow: url-pattern: /druid/* # 控制臺管理用戶名和密碼 login-username: easy login-password: 1 filter: stat: enabled: true # 慢SQL記錄 log-slow-sql: true slow-sql-millis: 20000 merge-sql: true wall: config: multi-statement-allow: true
@Configuration @ConfigurationProperties(prefix = "spring.datasource.druid") public class DruidDataSourceDecorator { // 讀取 Druid 配置 // 初始連接數 private int initialSize; // 最小連接池數量 private int minIdle; // 最大連接池數量 private int maxActive; // 配置獲取連接等待超時的時間 private int maxWait; // 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 private int timeBetweenEvictionRunsMillis; // 配置一個連接在池中最小生存的時間,單位是毫秒 private int minEvictableIdleTimeMillis; // 配置一個連接在池中最大生存的時間,單位是毫秒 private int maxEvictableIdleTimeMillis; // 配置檢測連接是否有效 private String validationQuery; // private boolean testWhileIdle; // private boolean testOnBorrow; // private boolean testOnReturn; 省略 set、get ... public DruidDataSource decorat(DruidDataSource source) { /** 配置初始化大小、最小、最大 */ source.setInitialSize(initialSize); source.setMaxActive(maxActive); source.setMinIdle(minIdle); /** 配置獲取連接等待超時的時間 */ source.setMaxWait(maxWait); /** 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 */ source.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); /** 配置一個連接在池中最小、最大生存的時間,單位是毫秒 */ source.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); source.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis); /** * 用來檢測連接是否有效的sql,要求是一個查詢語句,常用select * 'x'。如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會起作用。 */ source.setValidationQuery(validationQuery); /** * 建議配置為true,不影響性能,并且保證安全性。申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。 */ source.setTestWhileIdle(testWhileIdle); /** 申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。 */ source.setTestOnBorrow(testOnBorrow); /** 歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。 */ source.setTestOnReturn(testOnReturn); return source; } }
@Configuration public class DataSourceConfig { // 修飾一下 DataSource @Autowired private DruidDataSourceDecorator decorator ; @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") DataSource dataSource() { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return decorator.decorat(dataSource); } }
@Configuration @MapperScan(basePackages = "com.xxx.mapper", sqlSessionTemplateRef = "sqlSessionTemplate") public class HySessionFactory { @Resource(name = "dataSource") DataSource dataSource; SqlSessionFactory hySqlSessionFactory() { SqlSessionFactory sessionFactory = null; try { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); // 掃描的XML bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml")); sessionFactory = bean.getObject(); } catch (Exception e) { e.printStackTrace(); } return sessionFactory; } @Bean SqlSessionTemplate sqlSessionTemplate() { return new SqlSessionTemplate(sqlSessionFactory()); } }
以上就是druid中怎么配置數據連接池,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。