1. 程式人生 > >SpringBoot2.x預設連線池hikari及druid連線池

SpringBoot2.x預設連線池hikari及druid連線池

    在SpringBoot2.x的預設連線池是hikari。我們可以通過spring-boot-starter-jdbc的依賴發現。但是HikariCP應該是目前速度最快的連線池了。

1.hikari連線池使用

pom.xml中jdbc的三座標

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

 

配置檔案

# 連線四大引數
spring.datasource.url=jdbc:mysql://localhost:3306/wzy
spring.datasource.username=root
spring.datasource.password=wanzhuang
# 可省略,SpringBoot自動推斷
spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.minimum-idle=10

2.druid連線池使用

(1)pom三座標

<!-- Druid連線池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.6</version>
</dependency>

(2)配置檔案

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource    # 配置當前要使用的資料來源的操作型別
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://192.168.2.202:3306/sell?characterEncoding=utf-8&useSSL=false
    filters: stat,wall,log4j

(3)springboot中druid配置類

@Configuration
public class DruidConfig {
	/**
	 * 其中工addInitParameter()方法為初始化引數
	 * @return
	 */
	@Bean
	public ServletRegistrationBean druidServlet() { // 主要實現WEB監控的配置處理
		ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
				new StatViewServlet(), "/druid/*"); // 現在要進行druid監控的配置處理操作
		servletRegistrationBean.addInitParameter("allow",
				"127.0.0.1,192.168.4.19"); // 白名單
		servletRegistrationBean.addInitParameter("deny", "192.168.28.200"); // 黑名單
		servletRegistrationBean.addInitParameter("loginUsername", "admin"); // 使用者名稱
		servletRegistrationBean.addInitParameter("loginPassword", "[email protected]"); // 密碼
		servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置資料來源
		return servletRegistrationBean ;
	}
	/**
	 * addUrlPatterns()方法為新增過濾規則
	 * addInitParameter()方法為新增不需要忽略的格式資訊
	 * setOrder()方法表示新增執行過濾順序
	 * @return
	 */
	@Bean
	public FilterRegistrationBean filterRegistrationBean() {
		FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;
		filterRegistrationBean.setFilter(new WebStatFilter());
		filterRegistrationBean.addUrlPatterns("/*"); // 所有請求進行監控處理
		filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
		return filterRegistrationBean ;
	}
	/**
	 * @ConfigurationProperties(prefix = "spring.datasource")註解是把application.yml檔案中
	 * 配置資訊封裝為實體類
	 * @return
	 */
	@Bean
	@ConfigurationProperties(prefix = "spring.datasource")
	public DataSource druidDataSource() {
		return new DruidDataSource();
	}
}

【注意】裡面定義了登入druid的帳號和密碼