SpringBoot随笔-SpringBoot集成Druid
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
1.Druid是什么
Druid是Java语言中最好的数据库连接池之一,Druid能够提供强大的监控和扩展功能。
2.Druid连接池的优点:
- 强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况。
- 方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。
- Druid集合了开源和商业数据库连接池的优秀特性,并结合阿里巴巴大规模苛刻生产环境的使用经验进行优化
1
2 <dependency>
3 <groupId>com.alibabagroupId>
4 <artifactId>druid-spring-boot-starterartifactId>
5 <version>1.1.21version>
6 dependency>
7
8
9
10 <dependency>
11 <groupId>org.slf4jgroupId>
12 <artifactId>slf4j-log4j12artifactId>
13 dependency>
2.配置application.yml
1 spring:
2 datasource:
3 username: root
4 password: root
5 url: jdbc:mysql://localhost:3306/security_authority?characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
6 driver-class-name: com.mysql.jdbc.Driver
7 type: com.alibaba.druid.pool.DruidDataSource
8 # 下面为连接池的补充设置,应用到上面所有数据源中
9 # 初始化大小,最小,最大
10 druid.initial-size: 5
11 druid.min-idle: 5
12 druid.max-active: 20
13 # 配置获取连接等待超时的时间
14 druid.max-wait: 60000
15 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
16 druid.time-between-eviction-runs-millis: 60000
17 # 配置一个连接在池中最小生存的时间,单位是毫秒
18 druid.min-evictable-idle-time-millis: 300000
19 druid.validation-query: SELECT 1 FROM DUAL
20 druid.test-while-idle: true
21 druid.test-on-borrow: false
22 druid.test-on-return: false
23 # 打开PSCache,并且指定每个连接上PSCache的大小
24 druid.pool-prepared-statements: true
25 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,"wall"用于防火墙
26 druid.max-pool-prepared-statement-per-connection-size: 20
27 druid.filters: stat,wall
28 druid.use-global-data-source-stat: true
29 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
30 druid.connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
3.建立配置类
1
6 @Configuration
7 public class DruidConfig {
8
13 @Bean
14 @ConfigurationProperties(prefix = "spring.datasource")
15 public DataSource druid() {
16 return new DruidDataSource();
17 }
18
19
25 @Bean
26 public ServletRegistrationBean statViewServlet() {
27 ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid
44 @Bean
45 public FilterRegistrationBean webStatFilter() {
46 FilterRegistrationBean frb = new FilterRegistrationBean<>();
47 frb.setFilter(new WebStatFilter());
48 Map params = new HashMap<>();
49 //设置不拦截请求
50 params.put("exclusions", "*.js,*.css,/druid/*");
51 frb.setInitParameters(params);
52 //拦截请求
53 frb.setUrlPatterns(Arrays.asList("/*"));
54 return frb;
55 }
56 }
4.启动,测试;
http://localhost:8090/druid/login.html
至此SpringBoot集成了Druid。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341