• SpringBoot集成Druid连接池,配置多数据源


    1、配置application.yml文件

    1. spring:
    2. datasource:
    3. type: com.alibaba.druid.pool.DruidDataSource
    4. druid:
    5. # 数据库链接 [主数据源]
    6. main:
    7. url: jdbc:oracle:thin:@主机:端口号:ORCL
    8. username:
    9. password:
    10. driverClassName: oracle.jdbc.driver.OracleDriver
    11. # 初始化连接个数
    12. initialSize: 10
    13. # 最小连接池数量
    14. minIdle: 10
    15. # 最大连接池数量
    16. maxActive: 50
    17. # 获取连接时最大等待时间,单位毫秒
    18. maxWait: 60000
    19. timeBetweenEvictionRunsMillis: 60000
    20. # 连接保持空闲而不被驱逐的最小时间
    21. minEvictableIdleTimeMillis: 300000
    22. poolPreparedStatements: true
    23. maxPoolPreparedStatementPerConnectionSize: 20
    24. maxOpenPreparedStatements: 20
    25. validationQuery: SELECT 'x' FROM DUAL
    26. testWhileIdle: true
    27. testOnBorrow: true
    28. testOnReturn: true
    29. connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    30. # 开启监控统计信息
    31. filters: stat,wall
    32. useGlobalDataSourceStat: true
    33. keep-alive: true
    34. # 数据库链接 [从数据源]
    35. slave:
    36. url: jdbc:oracle:thin:@主机:端口号:ORCL
    37. username:
    38. password:
    39. driverClassName: oracle.jdbc.driver.OracleDriver
    40. # 初始化连接个数
    41. initialSize: 10
    42. # 最小连接池数量
    43. minIdle: 10
    44. # 最大连接池数量
    45. maxActive: 50
    46. # 获取连接时最大等待时间,单位毫秒
    47. maxWait: 60000
    48. timeBetweenEvictionRunsMillis: 60000
    49. # 连接保持空闲而不被驱逐的最小时间
    50. minEvictableIdleTimeMillis: 300000
    51. poolPreparedStatements: true
    52. maxPoolPreparedStatementPerConnectionSize: 20
    53. maxOpenPreparedStatements: 20
    54. validationQuery: SELECT 'x' FROM DUAL
    55. testWhileIdle: true
    56. testOnBorrow: true
    57. testOnReturn: true
    58. connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    59. # 开启监控统计信息
    60. filters: stat,wall
    61. useGlobalDataSourceStat: true
    62. keep-alive: true

    2、配置DatasourceConfig类

    1. @Configuration
    2. public class DatasourceConfig {
    3. @Bean(initMethod = "init", destroyMethod = "close")
    4. @ConfigurationProperties(prefix = "spring.datasource.druid.slave")
    5. public DataSource spcDataSource(DynamicDataSource dynamicDataSource) {
    6. DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
    7. Map targetDataSources = dynamicDataSource.getTargetDataSources();
    8. //50代表:数据源标志
    9. targetDataSources.put(50,dataSource);
    10. dynamicDataSource.setTargetDataSources(targetDataSources);
    11. return dataSource;
    12. }
    13. }

    3、实现类上方配置注解

    1. //数据源标识
    2. @MyDataSource(50)
    3. @Service
    4. public class TestServiceImpl extends ServiceImpl implements TestService {
    5. }

    4、从库数据操作

    1. //数据源标识
    2. @MyDataSource(50)
    3. @Service
    4. public class TestServiceImpl extends ServiceImpl implements TestService {
    5. @Autowired
    6. private TestMapper mapper;
    7. @Override
    8. public List getStudentById(String id) {
    9. if (StringUtils.isEmpty(id)) {
    10. return null;
    11. }
    12. List list = this.mapper.getStudentById(id);
    13. return list;
    14. }
    15. //保存数据到从数据库时,一定要配置@Transactional
    16. @Override
    17. @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
    18. public void saveStudentEntity(StudentEntity studentEntity) {
    19. this.save(StudentEntity);
    20. }
    21. }
  • 相关阅读:
    名称服务器(Name Server)介绍
    数据结构:顺序表的增删改查
    Fe3+-多巴胺修饰Pluronic的多功能性水凝胶/多巴胺修饰聚丙烯微孔膜表面的研究
    海事无人机解决方案
    利用Pycharm将python程序打包为exe文件(亲测可用)
    Java反射基础
    【数据结构】带头双向循环链表
    TSINGSEE青犀基于AI视频识别技术的平安校园安防视频监控方案
    zipkin2.24.2源码install遇见的问题
    【Hive】内置函数—字符串函数
  • 原文地址:https://blog.csdn.net/SUMMERENT/article/details/126031731