1辩涝、JDBC
1)啟動(dòng)器
如果您使用spring-boot-starter-jdbc
或spring-boot-starter-data-jpa
“啟動(dòng)器”霍狰,您將自動(dòng)獲得依賴(lài)HikariCP
HikariCP-史上最快速的連接池
沒(méi)有什么比這更快了。沒(méi)有比這更正確的了砚哗。HikariCP是一個(gè)“零開(kāi)銷(xiāo)”的生產(chǎn)質(zhì)量連接池龙助。
2)數(shù)據(jù)庫(kù)連接
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
SpringBoot默認(rèn)可以支持;
- org.apache.tomcat.jdbc.pool.DataSource
- HikariDataSource
- BasicDataSource
3) 更多選項(xiàng)
1. 默認(rèn)
有關(guān)DataSourceProperties 更多支持的選項(xiàng)蛛芥,請(qǐng)參閱 提鸟。無(wú)論實(shí)際實(shí)施如何,這些都是標(biāo)準(zhǔn)選項(xiàng)仅淑。也可以微調(diào)實(shí)現(xiàn)特定的設(shè)置称勋,使用各自的前綴(spring.datasource.hikari.*
, spring.datasource.tomcat.*
涯竟,和spring.datasource.dbcp2.*
)赡鲜。
例如,如果使用 Tomcat連接池庐船,則可以自定義許多其他設(shè)置银酬,如以下示例所示:
#如果沒(méi)有可用連接,則在拋出異常之前要等待的ms數(shù)筐钟。
spring.datasource.tomcat.max-wait = 10000
?桑可以同時(shí)從該池分配的最大活動(dòng)連接數(shù)。
spring.datasource.tomcat.max-active = 50
#在從池中借用連接之前驗(yàn)證連接篓冲。
spring.datasource.tomcat.test-on-borrow = true
2. 自定義
請(qǐng)看整合Druid數(shù)據(jù)源
2李破、整合Druid數(shù)據(jù)源
1)導(dǎo)入資源(pom.xml)
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
2)整合其他數(shù)據(jù)源需要編寫(xiě)配置類(lèi)
@Configuration
public class DruidCinfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid(){
return new DruidDataSource();
}
//配置Druid監(jiān)控
//配置一個(gè)管理后臺(tái)的Servlet
@Bean
public ServletRegistrationBean statViewServlet(){
/**創(chuàng)建一個(gè)管理后臺(tái)的Servlet
* StatViewServlet=狀態(tài)展示的頁(yè)面
* "/druid/"=請(qǐng)求路徑)
* */
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
HashMap<String, String> initParameters = new HashMap<>();
initParameters.put("loginUsername", "admin"); //配置登陸用戶(hù)名
initParameters.put("loginPassword", "123456");//配置登陸密碼
initParameters.put("allow", "");//允許哪些IP訪問(wèn) 如果為“”則表示所有
initParameters.put("deny", "");//拒絕哪些IP訪問(wèn) 如果為“”則表示所有
bean.setInitParameters(initParameters);
return bean;
}
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean(new WebStatFilter());
Map<String,String> initParameters = new HashMap();
initParameters.put("exclusions", "*.js,*.css,/druid/*");//放行的請(qǐng)求
bean.setInitParameters(initParameters);
bean.setUrlPatterns(Arrays.asList("/*"));//攔截所有請(qǐng)求
return bean;
}
}
3)編寫(xiě)好配置類(lèi)中的方法druid
就可以配置如下內(nèi)容
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true