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
相关推荐
小蒜学长9 分钟前
vue旅游攻略网站(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端·旅游
凤山老林17 分钟前
轻量级规则引擎落地:Spring Boot 集成 LiteFlow 实现动态业务编排与热更新
java·spring boot·后端·规则引擎·liteflow
IT_陈寒23 分钟前
Python装饰器把我坑惨了,原来这样用才不掉链子
前端·人工智能·后端
夏贰四26 分钟前
管控数据加载调度如何规避任务冲突?数据加载运维监控体系该如何搭建?
java·大数据·运维
山甫aa41 分钟前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
程序员爱钓鱼41 分钟前
Rust Associated Type关联类型详解:为Trait定义内部类型
前端·后端·rust
程序员爱钓鱼44 分钟前
Go 编程实战:匿名函数 Anonymous Function——没有名字的函数与灵活回调
后端·面试·go
鱼鳞_1 小时前
热门八股-JVM
java·jvm
ly76891 小时前
XML 从入门到实践:语法、命名空间、XPath、XSD 与 Java 安全解析
xml·java·python
长谷深风1111 小时前
好的 Tool Schema,不是字段越全越好
java·大数据·人工智能·ai agent·agent工作流·智能体设计·ai产品设计