我一直在关注此链接,试图配置两个或更多的数据源。弹簧数据JPA多个数据源
https://www.ccampo.me/java/spring/2016/02/13/multi-datasource-spring-boot.html
它说明了如何定义两个数据源,但没有说明如何实际使用它们,而查询。
我创建了配置类&在application.prop文件中添加了prop。但如何在回购函数/服务函数中定义它们?
控制器
public class EmpController {
@RequestMapping("/abcd")
public List<Employee> findAll() { return empService.findAll(); }
}
服务
@Service
public class EmpService {
@Autowired
private EmpRepository empRepo;
public List<Employee> findAll() { return empRepo.findAll(); }
}
回购
public interface EmpRepository extends JpaRepository<Employee, Long> {}
配置
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix = "datasource.primary")
public DataSource numberMasterDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource.secondary")
public DataSource provisioningDataSource() {
return DataSourceBuilder.create().build();
}
}
application.properties
# Primary DataSource configuration
datasource.primary.url=jdbc:mysql://127.0.0.1:3306/jpa
datasource.primary.username=root
datasource.primary.password=root
# Any of the other Spring supported properties below...
# Secondary DataSource configuration
datasource.secondary.url=jdbc:mysql://127.0.0.1:3306/jpa2
datasource.secondary.username=root
datasource.secondary.password=root
而且我DONOT希望有不同的数据源作为 我有读&写不同的数据块单独的存储库。因此,我所有的插入查询将在一台服务器上读取其他服务器上的查询&。如果我创建不同的回购/服务进行读取&的写入,将会出现太多冗余代码
显示您的查询码? – johncena
编辑代码 –
的问题@AnkitBansal,数据库是否相同,并且总是相同的(例如,一个是另一个的只读副本)?否则,不同的数据库结构会自动暗示它们不存储相同(确切)的数据。因此,两者都需要不同的实体,因此需要分开存储库。 – manish