携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情
1.JDBC
-
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
-
配置文件
#配置数据源的属性 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&useSSL=true username: root password: root type: org.springframework.jdbc.datasource.DriverManagerDataSource #如果不指定数据源默认使用HikariDataSource
2.DBCP2
- dbcp的依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
- 配置文件
#配置数据源的属性
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&useSSL=true
username: root
password: root
type: org.apache.commons.dpcp2.BasicDataSource
3.Druid
- 使用Druid的starter配置(项目中使用此配置方法)
- 依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
• 配置文件
#配置数据源的属性
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
username: root
password: root
max-active: 20
max-wait: 5000
initial-size: 1
filters: stat,log4j,wall
validationQuery: SELECT 'x' #验证连接
enable: true
#监控配置
stat-view-servlet:
enabled: true
login-username: root
login-password: 123456
allow:
deny:
url-pattern: /druid/*
# web-stat-filter:
# enabled: true
# exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
• druid的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
• 配置文件
#配置数据源的属性
spring:
datasource:
driver-class-name:com.mysql.cj.jdbc.Driver
url:jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
username:root
password:root
type:com.alibaba.druid.pool.DruidDataSource
druid:
max-active:20
max-wait:6000
initial-size:5
filters:stat,log4j,wall
• 配置类
@Configuration
publicclass DruidConfig{
@ConfigurationProperties(prefix="spring.datasource")
@Bean(initMethod="init") //要加上initMethod 属性 不加监控页面的数据源可能出不来
public DruidDataSource druid(){
Return new DruidDataSource();
}
//配置Druid的监控
//1、配置一个管理后台的Servlet
@Bean
Public ServletRegistrationBean druidServlet(){
ServletRegistrationBean<StatViewServlet> registrationBean=
newServletRegistrationBean<>(newStatViewServlet(),"/druid/*");
//方式一
//添加IP白名单
//registrationBean.addInitParameter("allow","127.0.0.1");
//添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
//registrationBean.addInitParameter("deny","127.0.0.1");
//添加控制台管理用户
registrationBean.addInitParameter("loginUsername","admin");
registrationBean.addInitParameter("loginPassword","333");
//是否能够重置数据
registrationBean.addInitParameter("resetEnable","false");
//方式二
//Map<String,String>initParams=newHashMap<>();
//registrationBean.setInitParameters(initParams);
returnregistrationBean;
}
//2、配置一个web监控的filter
@Bean
Public FilterRegistrationBean druidFilter(){
FilterRegistrationBean<WebStatFilter>filterRegistrationBean=
new FilterRegistrationBean<>(newWebStatFilter());
//添加过滤规则
filterRegistrationBean.addUrlPatterns("/*");
//忽略过滤格式
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
• 配置问题
• 要在数据源bean上加上initMethod属性 不加估计会出现一下错误
• The server time zone value xxxxx is unrecognized or represents more than 时区问题
修改配置文件URL 加上 serverTimezone=UTC
jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC