I have a Spring-boot application with 2 Datasources.
application.properties
spring.datasource.url= jdbc:postgresql://localhost:5432/data1 spring.datasource.username=postgres spring.datasource.password=pass spring.secondDatasource.url= jdbc:mysql://localhost:3306/data2 spring.secondDatasource.username=root spring.secondDatasource.password=pass spring.jpa.hibernate.ddl-auto=create-drop DataBaseConfiguration.java
@Configuration public class DatabaseConfiguration { @Bean @Primary @ConfigurationProperties(prefix="spring.datasource") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix="spring.secondDatasource") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); } } MessageRepository.java
public interface MessageRepository extends CrudRepository<Message, Long>{ } MessageController.java
@Controller @RequestMapping("/messages") public class MessageController { @Autowired private MessageRepository repositoryPostGreSQL; @RequestMapping(value="", method = RequestMethod.GET) public String listPosta(Model model){ model.addAttribute("messages", repositoryPostGreSQL.findAll()); return "messages/list"; } } It is working fine, the 2 Databases are connected and working.
What I need to know is that when I @Autowire a Repository how do I specify witch DataSource should be linked?
Repository?