springboot配置多数据源及示例分享
下文笔者讲述SpringBoot下配置多数据源及测试示例
学习完本章之后,你将掌握SpringBoot下配置多数据源的方法,如下所示
学习完本章之后,你将掌握SpringBoot下配置多数据源的方法,如下所示
SpringBoot配置多数据源的实现思路
1.引入相应依赖 dynamic-datasource-spring-boot-starter 2.设置配置文件 3.mapper上使用 @DS 注解 使用以上方式即可实现SpringBoot多数据源的效果例:SpringBoot多数据源的效果分享
pom
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.6</version>
</dependency>
2.application.yml
spring:
datasource:
dynamic:
primary: dbdb3 #默认使用的数据源
datasource:
dbdb1:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///db1?characterEncoding=utf-8&allowMultiQueries=true
username: root
password: 1234
dbdb2:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///db2?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
dbdb3:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///db3?characterEncoding=utf-8&allowMultiQueries=true
username: root
password: 1234
server:
port: 9999
# mybatis-plus
mybatis-plus:
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package: com.*.*.pojo
//在类或方法上标明使用的数据源
//不标明则默认使用 primary: dbdb3
//当没有相应的表则会报错
@Mapper
@DS(value = "dbdb2")
public interface UserInfoMapper extends BaseMapper<UserInfo> {
}
//测试
@Autowired
private UserInfoMapper userInfoMapper;
@Test
void test1() {
UserInfo userInfo = new UserInfo();
userInfo.setUsername("java265");
userInfo.setPassword("123456");
userInfoMapper.insert(userInfo);
}
@Service
@DS(value = "dbdb1") //如果在mapper上也有@DS则会按mapper上的数据源
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper,UserInfo> implements UserInfoService {
}
@Autowired
private UserInfoService userInfoService;
@Test
void test2() {
UserInfo userInfo = new UserInfo();
userInfo.setUsername("java265");
userInfo.setPassword("123456");
userInfoService.save(userInfo);
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


