后台从多个数据库获取数据,则需要用到多数据源。
个人更喜欢用application.yml,感觉比application.properties,故改用yml格式的配置文件
1、添加依赖,如下:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
2、修改数据库配置,改为多数据源参数:
spring:
datasource:
dynamic:
primary: ds1
datasource:
ds1:
url: jdbc:mysql://ip1:port1/database1
username: database1_username
password: password1
driver-class-name: com.mysql.cj.jdbc.Driver
ds2:
url: jdbc:mysql://ip2:port2/database2
username: database2_username
password: password2
driver-class-name: com.mysql.cj.jdbc.Driver
3、在相应类或者方法前加注解“DS”即可,如下:
@SpringBootApplication
@RestController
public class DemoApplication {
@Autowired
private XxxServiceImpl xxxService;
@GetMapping("/getlist")
@DS("ds2")
public List<Xxx> getXxxList() {
return xxxService.list();
}
}
以上三个步骤就可以了。
当然,需要添加相应的XxxMapper、IXxxService、XxxServiceImpl。
查过不了资料,也看过廖雪峰大大的博文。不得不说,这个方案牛逼的不得了。
参考文档:
https://baomidou.com/pages/a61e1b/
https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611
|