SpringBoot配置druid数据源

1.导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.20</version> </dependency>
2.修改yml
spring:
datasource:
username: root
password: mahaoxiang123
url: jdbc:mysql://127.0.0.1:3306/boot_demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&connectTimeout=3000&socketTimeout=3000
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
spring: datasource: username: root password: mahaoxiang123 url: jdbc:mysql://127.0.0.1:3306/boot_demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&connectTimeout=3000&socketTimeout=3000 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat,wall useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
现在要明确一件事:
只靠 type = DruidDataSource 还不够
Druid 不会像 Hikari 一样被 Spring Boot 完全自动接管
所以 必须写配置类
3.创建 Druid 配置类DruidConfig
@Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource dataSource() { return new DruidDataSource(); } // 1. 配置 Druid 监控后台 Servlet @Bean public ServletRegistrationBean statViewServlet() { ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String, String> initParams = new HashMap<>(); initParams.put("loginUsername", "root"); initParams.put("loginPassword", "mahaoxiang123"); initParams.put("allow", ""); initParams.put("deny", "127.0.0.1"); bean.setInitParameters(initParams); return bean; } // 2. 配置 Web 监控 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; } }
这一刻开始, 你已经不是"自动数据源"了,而是:

  • new 了 DruidDataSource
  • Spring 只是托管它
  • 参数从 yml 自动绑定进来
    4.启动验证
    启动maven启动类访问
    http://localhost:8086/druid
相关推荐
卷无止境4 分钟前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
秋天的怀念_David9 分钟前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool11226613 分钟前
网络编程^
java
莫逸风21 分钟前
【毕设源码二期01】校园失物招领系统:从发布线索到核验交接
spring boot·毕业设计·课程设计·react
Thinker QAQ1 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
IT_陈寒1 小时前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780511 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design1 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express
齐 飞1 小时前
idea中git误操作撤回git reset --hard ‘HEAD@{1}‘
java·git·intellij-idea
你的保护色1 小时前
多AS互联BGP4综合实验设计
java