SpringBoot整合Druid数据源
Posted 誓什么言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合Druid数据源相关的知识,希望对你有一定的参考价值。
SpringBoot整合Druid数据源
导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
配置数据库以及数据源的相关属性
spring:
datasource:
password: root
username: root
url: jdbc:mysql://127.0.0.1:3307/db_book_system?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
url-pattern: "/druid/*"
# IP白名单(没有配置或者为空,则允许所有访问)
allow: 127.0.0.1
# IP黑名单 (存在共同时,deny优先于allow)
deny:
# 禁用html页面上的“Reset All”功能
reset-enable: false
# 登录名
login-username: admin
# 登录密码
login-password: 123456
将数据源加入到spring容器中去
@Configuration//声明这是一个配置类,相当于spring配置的一个xxx.xml文件
public class DruidConfig {
//自动映射上面配置以spring.datasource开头的yaml的配置文件
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDatasource(){
return new DruidDataSource();
}
//ServletRegistrationBean 相当于web.xml注册了一个servlet(new StatViewServlet())
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
HashMap<String, String> map = new HashMap<>();
//账号密码是固定不变的
map.put("loginUsername","admin");
map.put("loginPassword","123456");
map.put("allow","");
//禁止访问 map.put("user","127.0.0.1");
servletRegistrationBean.setInitParameters(map);
return servletRegistrationBean;
}
//FilterRegistrationBean 相当于web.xml 注册了一个filter(new WebStatFilter())
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
HashMap<String, String> map = new HashMap<>();
//不需要过滤的请求
map.put("exclusions","*.js,*.css,/druid/**");
filterRegistrationBean.setInitParameters(map);
return filterRegistrationBean;
}
}
以上是关于SpringBoot整合Druid数据源的主要内容,如果未能解决你的问题,请参考以下文章
springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置
SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源配置 MyBatis事务控制druid 监控)