spring-boot如何使用两个DataSource

Posted

技术标签:

【中文标题】spring-boot如何使用两个DataSource【英文标题】:How use spring-boot Two DataSources 【发布时间】:2016-04-08 03:44:15 【问题描述】:

我尝试在 spring boot 中使用两个数据源,而不是像教程一样配置:http://docs.spring.io/spring-boot/docs/1.3.1.RELEASE/reference/htmlsingle/#howto-two-datasources

@Configuration
public class MigrarService 


    @Bean(name = "dbdnaso")
    @Primary
    @ConfigurationProperties(prefix="spring.dbdnaso")
    public DataSource primaryDataSource() 
        return DataSourceBuilder.create().build();
    

    @Bean(name = "dbregistro")
    @ConfigurationProperties(prefix="spring.dbregistro")
    public DataSource dbRegistro() 
        return DataSourceBuilder.create().build();
    


然后我创建 2 个实体和 2 个存储库

import br.com.lumera.entity.TbUsuario;
import org.springframework.data.repository.CrudRepository;

public interface IUsuario1 extends CrudRepository<TbUsuario1, Integer>

    TbUsuario1 getTbUsuarioByNmEmail(String nmEmail);

    TbUsuario1 getTbUsuarioByNmEmailAndDsSenha(String nmEmail, String string);
 

import br.com.lumera.entity.TbUsuario;
import org.springframework.data.repository.CrudRepository;

public interface IUsuario2 extends CrudRepository<TbUsuario2, Integer>

    TbUsuario2 getTbUsuarioByNmEmail(String nmEmail);

    TbUsuario2 getTbUsuarioByNmEmailAndDsSenha(String nmEmail, String string);

现在我该怎么说我在每个存储库中使用的数据源??

tks

【问题讨论】:

看看这个:***.com/questions/12612288/… 数据库是否具有相同的结构? 伙计,我在同一台服务器上有 2 个 postgresql,但在 diff db 中 看这个例子。它解释了你需要什么Multiple data source and schema creation in Spring Boot 【参考方案1】:

如果您使用自动配置并且有两个,它将使用注释 - @Primary

【讨论】:

所以我需要在我的扩展 CrudRepository 的类中放入注释主?

以上是关于spring-boot如何使用两个DataSource的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring-Boot 中,我们如何在同一个项目中连接两个数据库(Mysql 数据库和 MongoDB)?

如何通过使用 JPA + Hibernate 和 Spring-boot 在一个数据库中使用多个模式?

有没有办法正确集成两个(或更多)Spring-Boot 项目?

如何在spring-boot中用application.properties制作config类?

Spring-boot,使用不同配置文件的 JUnit 测试

在spring-boot中加入两个实体