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
相关推荐
黃芢輝15 分钟前
开源实战:基于 Spring Boot 3 + Vue 3 + Redis 的高校选修课管理系统(志愿填报 + 统一抽签)
后端
小雨的AI中台笔记15 分钟前
502 还是 503?「无可用渠道」其实只有三个原因
后端
LCG元17 分钟前
我让AI重写了这个老系统
后端
吴汐18 分钟前
【CRMEB 社区版】二开第一问:这个需求该进 driver,还是进 modules?
后端
新*24 分钟前
Elasticsearch 7.17 的 SQL 到底能查到什么?一次踩坑记录
后端·sql·elasticsearch·查询
卷无止境1 小时前
SALib敏感性分析的python库学习笔记
后端·python
ServBay1 小时前
从 Val Town 停服看,代码能下载不代表项目能搬家
后端·sqlite
SL_staff1 小时前
私有化低代码:面向强监管行业的可控数字化实践
java·低代码
三翼鸟数字化技术团队2 小时前
高性能存储引擎RocksDB:原理与Java生态实践
java
AI开源软件2 小时前
SpringBoot3+AI Agent 智能报销:怎样把对话接进现有财务审批系统
spring boot·ai agent·人工确认·ruoyi office·agentos·智能报销·财务审批