SpringBoot配置Druid数据库连接池
SpringBoot配置Druid数据库连接池
1.首先导入Druid的开发依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> |
2.在springboot的配置文件中application中书写配置文件指定数据库连接池的类型为Druid。配置文件如下:
spring: datasource: username: root password: root url: jdbc:mysql://10.6.252.47:3306/jdbc driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource |
主要是type的参数;
3.由于Druid有一下参数可以配置,接下里我们要将配置参数设置到Druid的数据库连接池中。
1). 创建一个配置文件;将容器中注入一个DruidDataSource的一个数据源并读取前缀为spring.datasource的配置文件中的内容代码如下:
@Configuration public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid() { return new DruidDataSource(); } } |
2). 在配置文件中书写对应Druid的参数配置:
spring: datasource: username: root password: root url: jdbc:mysql://10.6.252.47:3306/jdbc 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 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 |
这样数据库连接池中的参数就设置完成了。
配置Durid的监控:
1. 配置一个管理后台的Servlet,SpringBoot配置Servlet的方式如下:
@Bean public ServletRegistrationBean statViewServlet() { ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String, String> initParams = new HashMap<>();
initParams.put("loginUsername", "admin"); initParams.put("loginPassword", "123456"); bean.setInitParameters(initParams); return bean; } |
2.配置一个监控Filter:
@Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*"); bean.setInitParameters(initParams);
bean.setUrlPatterns(Arrays.asList("/*")); return bean;
} |
通过http://localhost:8080/druid请求到达登录页面,通过Servlet中设置的用户名和密码登录到监控界面