添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

原文地址: https://blog.csdn.net/u012557538/article/details/79218808

1.application.properties配置文件

spring.datasource.type = com.alibaba.druid.pool.DruidDataSource

#----DS1----

spring.datasource.p rimary.url = jdbc:sqlserver://127.0.0.1:1433;databasename=test1

spring.datasource.primary.username= sa

spring.datasource.primary.password= 123456

#----DS2---

spring.datasource.se condary.url = jdbc:sqlserver://127.0.0.1:1433;databasename=test2

spring.datasource.secondary.username= sa

spring.datasource.secondary.password= 123456

spring.datasource.t hird.url = jdbc:sqlserver://127.0.0.1:1433;databasename=test3

spring.datasource.third.username= sa

spring.datasource.third.password= 123456

#---------------------------------------------------------------------------------------

spring.datasource.primary.driver-class-name= com.microsoft.sqlserver.jdbc.SQLServerDriver

spring.datasource.secondary.driver-class-name= com.microsoft.sqlserver.jdbc.SQLServerDriver

spring.datasource.t hird.driver-class-name = com.microsoft.sqlserver.jdbc.SQLServerDriver

spring.datasource.druid.initial-size = 5

spring.datasource.druid.max-active = 20

spring.datasource.druid.min-idle = 5

spring.datasource.druid.max-wait= 30000

以上为最基本配置。

注:druid如果不配置Filter,默认是开启的,譬如web-stat-filter、 stat-view-servlet等,可以通过配置属性覆盖默认配置,例如:

# WebStatFilter monitor

spring.datasource.druid.web-stat-filter.enabled= true

spring.datasource.druid.web-stat-filter.url-pattern= \*

spring.datasource.druid.web-stat-filter.exclusions= *. js ,*. gif ,*. jpg ,*. png ,*. css ,*. ico ,/ druid /*

spring.datasource.druid.web-stat-filter.session-stat-enable= false

spring.datasource.druid.web-stat-filter.session-stat-max-count= 1000

#\u76D1\u63A7\u5355\u4E2Aurl\u8C03\u7528\u7684sql\u5217\u8868

spring.datasource.druid.web-stat-filter.profile-enable= true

# StatViewServlet ,it configs who can visit

spring.datasource.druid.stat-view-servlet.enabled= true

spring.datasource.druid.stat-view-servlet.url-pattern= / druid /*

spring.datasource.druid.stat-view-servlet.reset-enable= true

spring.datasource.druid.stat-view-servlet.login-username= admin

spring.datasource.druid.stat-view-servlet.login-password= admin123

spring.datasource.druid.stat-view-servlet.allow= 127.0.0.1

如果设置了 StatViewServlet,即配置了监控池认证,要进监控池需要输入 http://127.0.0.1:8083/druid/login.html,如果没配置,直接输入http://127.0.0.1:8083/druid/即可

接下来是正式的数据源配置:
  1. package cn.do1shoje.config;
  2. import javax.sql.DataSource;
  3. import org.springframework.beans.factory.annotation.Qualifier;
  4. import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
  5. import org.springframework.boot.context.properties.ConfigurationProperties;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.context.annotation.Primary;
  9. import org.springframework.jdbc.core.JdbcTemplate;
  10. import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
  11. /**
  12. * 多数据源,集成druid
  13. * @author shoje
  14. *
  15. */
  16. @Configuration
  17. public class DSConfig {
  18. @Bean (name = "primaryDataSource" )
  19. @Qualifier ( "primaryDataSource" )
  20. @ConfigurationProperties (prefix = "spring.datasource.primary" )
  21. public DataSource primaryDataSource(){
  22. //return DataSourceBuilder.create().build();
  23. return DruidDataSourceBuilder.create().build();
  24. }
  25. @Bean (name = "secondaryDataSource" )
  26. @Qualifier ( "secondaryDataSource" )
  27. @Primary
  28. @ConfigurationProperties (prefix = "spring.datasource.secondary" )
  29. public DataSource secondaryDataSource(){
  30. //return DataSourceBuilder.create().build();
  31. return DruidDataSourceBuilder.create().build();
  32. }
  33. @Bean (name = "thirdDataSource" )
  34. @Qualifier ( "thirdDataSource" )
  35. @ConfigurationProperties (prefix = "spring.datasource.third" )
  36. public DataSource thirdDataSource(){
  37. //return DataSourceBuilder.create().build();
  38. return DruidDataSourceBuilder.create().build();
  39. }
  40. @Bean (name = "primaryJdbcTemplate" )
  41. public JdbcTemplate primaryJdbcTemplate( @Qualifier ( "primaryDataSource" )DataSource dataSource){
  42. return new JdbcTemplate(dataSource);
  43. }
  44. @Bean (name = "secondaryJdbcTemplate" )
  45. public JdbcTemplate secondaryJdbcTemplate( @Qualifier ( "secondaryDataSource" )DataSource dataSource){
  46. return new JdbcTemplate(dataSource);
  47. }
  48. @Bean (name = "thirdJdbcTemplate" )
  49. public JdbcTemplate thirdJdbcTemplate( @Qualifier ( "thirdDataSource" )DataSource dataSource){
  50. return new JdbcTemplate(dataSource);
  51. }
  52. }
这里我使用时遇到一个问题,就是构建DataSource时,一直用的JDBC的DataSourceBuilder在构建数据源,然后发觉怎么查看日志都发现Druid没有生效,一开始我是没有发觉的,因为用 DBC的DataSourceBuilder在构建数据源,程序是正常的,调用数据库也是正常的,只是druid未生效而已,直到 我查看druid的监控池后,才发现这个druid未生效,为什么呢?因为druid监控池中的几个指标全是空的,连数据源那个指标都是空的,当即判断,druid未生效。改用DruidDataSourceBuilder构建数据源即解决springboot整合多数据源和Druid的问题。

数据源配置完了,则是使用问题。

[java] view plain
  1. @RestController
  2. @RequestMapping ( "/api/v1" )
  3. public class InfoController {
  4. private Logger log = LoggerFactory.getLogger(InfoController. class );
  5. private static final String DEFAULT_PAGE_START = "0" ;
  6. private static final String DEFAULT_PAGE_SIZE = "10" ;
  7. @Autowired
  8. @Qualifier ( "primaryJdbcTemplate" )
  9. private JdbcTemplate jt;
  10. @Autowired
  11. @Qualifier ( "secondaryJdbcTemplate" )
  12. private JdbcTemplate jt2;}
在需要使用的地方直接注入,即可。 1、先在pom.xml中引入 Druid DataSource 相关的jar,引入的是1.1.17版本 备注:引用了oracle的jar。引入mybatis的jar是因为和 druid 有依赖关系,也可以结合mybatis使用。 <?xml version="1.0" encoding="UTF-8... Druid 是Java语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。 Druid DataSource 支持的数据库: 理论上说,支持所有有jdbc驱动的数据库。最近发现 Druid springboot 框架下有更加好用的 Druid Spring Boot Starter,可以省去原本写 Druid 的一些 配置 文件或者@Configuration来 配置 ,直接将 配置 写在applicat... 有时候为了减少数据库的压力,就要实现数据库的读写分离,这种情况往往是读多写少的情况,例如电商平台。既然数据库读写分离了,那么代码层也就需要读写不同的数据库了。实现方法应该有不少,我知道有插件实现,判断写请求还是读请求来请求不同的数据库,还有代码实现,不同的SQL访问不同的数据源,也就是接下来要说的 多数据源 。 一、基础介绍 代码层 多数据源 的实现方法也有很多,例如不同的包拥有不同的数据源、... SpringBoot +JPA+ Druid 多数据源 配置 完全版+有坑提示简介多数据 配置 需要注意的点(坑)体会参考 在下是刚毕业的小萌新,现在在一家股票资讯公司做Java开发,手头上的项目(crud项目)本来是只连Mysql,现新增了功能需要连Postgre,于是哼哧哼哧开始了JPA的 多数据源 配置 。经历一番轰轰烈烈的搜索,找了好几个 多数据源 配置 教程,就开始了我的模仿表演。没想到一步一个坑,经过几... SpringBoot 2.0.5 + jpa + druid 多数据源 数据库密码加密 文章目录 SpringBoot 2.0.5 + jpa + druid 多数据源 数据库密码加密一、 druid 多数据源 1. pom.xml2. 配置 文件 application.properties3. Druid DefaultPropertiesConfig 用于接收通用的 druid 配置 4.设置 DataSource 5.数据源设置7.需要注意的坑二.数据库密码加密1. 使用 druid 密码加密2.使用Jasypt 加密参考文章 在使用 springboot 开发业务应用程序的过程中,使用 多数据源 的场景很常见。目前,业界常用的 spring boot 整合 多数据源 的方案主要有两个,一个是Mapper分包方式,另一个是AOP切片方式。针对这种 多数据源 使用场景的痛点,MyBatis-plus团队开源了一个更为方便的解决方案(https://mp.baomidou.com/guide/dynamic- datasource .html),但是对于整合 druid 数据库连接池,却没有给出具体的使用示例。本篇文章就是使用 springboot 整合mybati 配置 多数据源 意思就是在一个项目中使用多个数据库,在项目使用中可以不用手动切换数据库来实现不同数据库的数据获取和更新。 源码地址:https://github.com/hanguilin/ boot -security 项目环境: SpringBoot 2.1.9、 Spring Data Jpa 项目文件夹: 二、 配置 application.properties spring . datasource . primary .driver-class-name 数据库驱动包 spring .... spring . datasource . druid .stat-view-servlet.allow= 3、碰到sql监控中没有数据 spring . datasource . druid .filters 前一篇文章我们熟悉了HikariCP连接池,也了解到它的性能很高,今天我们讲一下另一款比较受欢迎的连接池: Druid ,这是阿里开源的一款数据库连接池,它官网上声称:为监控而生!他可以实现页面监控,看到SQL的执行次数、时间和慢SQL信息,也可以对数据库密码信息进行加密,也可以对监控结果进行日志的记录,以及可以实现对敏感操作实现开关,杜绝SQL注入,下面我们详细讲一下它如何与 Spring 集成 ,并且顺便了解一下它的监控的 配置 。 文章要点: Spring 集成 Druid 监控Filters 配置 spring . datasource . druid .filter.config.enabled=false spring . datasource . druid .web-stat-filter.enabled=false spring . datasource . druid .stat-view-servlet.enabled=false​ 配置 value默认是true 手动设置后,重启项目即可关闭暴露在公网的 druid # druid 监控关闭 spring . datasource . druid .filter.config.enabled=false spring . datasource . druid .web-stat-filter.enabled=false spring .datas...