欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

hikari数据源配置类_Spring中的“多数据源”之详解

发布时间:2023/12/15 javascript 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 hikari数据源配置类_Spring中的“多数据源”之详解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

注意事项

  • 不同数据源的配置要分开
  • 关注每次使用的数据源
    • 有多个DataSource时系统如何判断
    • 对应的设施(事务、ORM)如何选择DataSource

    多数据源配置(二选一)

  • 配置@Primary类型的Bean(DataSource)
  • 排除Spring Boot的自动配置(手动配置)
    • DataSourceAutoConfiguration
    • DataSourceTransactionManagerAutoConfiguration
    • JdbcTemplateAutoConfiguration

    依赖

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope> </dependency>

    application.properties

    management.endpoints.web.exposure.include=* foo.datasource.url=jdbc:h2:mem:foo foo.datasource.username=SA foo.datasource.password= bar.datasource.url=jdbc:h2:mem:bar bar.datasource.username=SA bar.datasource.password=

    DataSourceConfig

    @Slf4j @Configuration public class DataSourceConfig {@Bean@ConfigurationProperties("foo.datasource")public DataSourceProperties fooDataSourceProperties() {return new DataSourceProperties();}@Beanpublic DataSource fooDataSource() {DataSourceProperties dataSourceProperties = fooDataSourceProperties();log.info("foo datasource : {}", dataSourceProperties.getUrl());return dataSourceProperties.initializeDataSourceBuilder().build();}@Bean@Resourcepublic PlatformTransactionManager fooTxManager(DataSource fooDataSource) {return new DataSourceTransactionManager(fooDataSource);}@Bean@ConfigurationProperties("bar.datasource")public DataSourceProperties barDataSourceProperties() {return new DataSourceProperties();}@Beanpublic DataSource barDataSource() {DataSourceProperties dataSourceProperties = barDataSourceProperties();log.info("bar datasource : {}", dataSourceProperties.getUrl());return dataSourceProperties.initializeDataSourceBuilder().build();}@Bean@Resourcepublic PlatformTransactionManager barTxManager(DataSource barDataSource) {return new DataSourceTransactionManager(barDataSource);} }

    MultiDatasourceApplication

    // 排查自动配置 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class,JdbcTemplateAutoConfiguration.class}) public class MultiDatasourceApplication {public static void main(String[] args) {SpringApplication.run(MultiDatasourceApplication.class, args);} }

    beans

    "fooDataSource": {"aliases": [],"scope": "singleton","type": "com.zaxxer.hikari.HikariDataSource","resource": "class path resource [me/zhongmingmao/multidatasource/DataSourceConfig.class]","dependencies": ["fooDataSourceProperties"] } "fooTxManager": {"aliases": [],"scope": "singleton","type": "org.springframework.jdbc.datasource.DataSourceTransactionManager","resource": "class path resource [me/zhongmingmao/multidatasource/DataSourceConfig.class]","dependencies": ["fooDataSource"] }

    小结

    最后,小架在这里祝大家国庆快乐!

    希望一直以来关注我的各位越来越好,身体健康,学业有成。在成为架构师的这条路上,我以后也会一直陪大家走下去! 会努力的去寻找更多的新内容新知识,来分享给大家,接下来可能会脱更几天,因为某些不可抗力,再次感谢大家的看我的文章!

    仰天大笑出门去,我辈岂是蓬蒿人。

    我是小架,我们

    下篇文章见!

    总结

    以上是生活随笔为你收集整理的hikari数据源配置类_Spring中的“多数据源”之详解的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。