在application.yml中增加两个数据源,分别为master和slave
server: port: 8880 spring: datasource: master: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/microservice?useUnicode=true&characterEncoding=utf-8&useSSL=true username : root password : xda265856 driverClassName : com.mysql.jdbc.Driver slave: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/microservice2?useUnicode=true&characterEncoding=utf-8&useSSL=true username: root password: xda265856 driverClassName: com.mysql.jdbc.Driver jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl ddl-auto: update show-sql: true项目结构如下图所示:
关于注入配置的代码部分就不贴上来了,没多大意义,最后会补充上GitHub的地址
编写测试用controller,用来从两个数据源中读取数据,并响应:
@Controller public class MultiSouceController { @Autowired private StudentRepository studentRepository; @Autowired private UserRepository userRepository; @ResponseBody @RequestMapping(value = "/datasouces/data", method = {RequestMethod.GET}) public Map<String,Object> updateStudent(){ Map<String,Object> allData = new HashMap<>(); List<Student> students = studentRepository.findAll(); List<User> users = userRepository.findAll(); allData.put("students",students); allData.put("users",users); return allData; } }运行效果如下: