springboot怎么配置多数据源


在Spring Boot中配置多个数据源可以通过以下步骤来实现:

  1. 在pom.xml文件中添加Spring Boot对多数据源的支持依赖:

     org.springframework.boot spring-boot-starter-data-jpa <groupId.zaxxer HikariCP
  2. 在application.properties或application.yml配置文件中配置每个数据源的连接信息:

    # 数据源1spring.datasource.url=jdbc:mysql://localhost:3306/db1spring.datasource.username=rootspring.datasource.password=root

数据源2

spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2spring.datasource.secondary.username=rootspring.datasource.secondary.password=root

3. 创建多个DataSource bean,分别对应每个数据源:```java@Configurationpublic class DataSourceConfig {@Primary@Bean(name = "dataSource")@ConfigurationProperties(prefix = "spring.datasource")public DataSource dataSource() {return DataSourceBuilder.create().build();}@Bean(name = "secondaryDataSource")@ConfigurationProperties(prefix = "spring.datasource.secondary")public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();}}
  1. 配置JpaVendorAdapter和EntityManagerFactory bean,指定每个数据源的JPA配置:

    @Configuration@EnableJpaRepositories( basePackages = .example.repository",entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager")public class JpaConfig { @Autowired @Qualifier("dataSource") private DataSource dataSource; @Autowired @Qualifier("secondaryDataSource") private DataSource secondaryDataSource; @Primary @Bean(name = "entityManagerFactory") public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) { return builder .dataSource(dataSource) .packages(.example.domain") .persistenceUnit("primary") .build(); } @Bean(name = "secondaryEntityManagerFactory") public LocalContainerEntityManagerFactoryBean secondaryEntityManagerFactory(EntityManagerFactoryBuilder builder) { return builder .dataSource(secondaryDataSource) .packages(.example.domain") .persistenceUnit("secondary") .build(); } @Primary @Bean(name = "transactionManager") public PlatformTransactionManager transactionManager( @Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory) { return new JpaTransactionManager(entityManagerFactory); } @Bean(name = "secondaryTransactionManager") public PlatformTransactionManager secondaryTransactionManager( @Qualifier("secondaryEntityManagerFactory") EntityManagerFactory secondaryEntityManagerFactory) { return new JpaTransactionManager(secondaryEntityManagerFactory); }}
  2. 在需要使用数据源的地方使用@Qualifier注解指定具体的数据源:

    @Servicepublic class MyService { @Autowired @Qualifier("entityManagerFactory") private EntityManagerFactory entityManagerFactory; // 使用entityManagerFactory进行数据库操作}

通过以上步骤,就可以在Spring Boot中成功配置多个数据源。


上一篇:linux守护进程怎么启动

下一篇:java怎么连接数据库实现增删改查操作


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索