目录
一.先参考springboot系列第二篇新建一个module
一.先参考springboot系列第二篇新建一个module
1.在pom中修改父pom,并引入baomidou相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jhy</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jhy</groupId>
<artifactId>springboot-dynamic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-dynamic</name>
<description>springboot-dynamic</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.修改yml配置文件
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
url: jdbc:mysql://10.0.2.31:3306/test_su1?useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
slave:
url: jdbc:mysql://10.0.2.31:3306/test_su2?useSSL=false&serverTimezone=UTC
username: root
password: 123456
logging:
level:
com.jhy.mapper: debug # 控制台输出sql语句
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.jhy.pojo
configuration:
map-underscore-to-camel-case: true #开启驼峰式命名
二.修改对应文件
1.启动类
@SpringBootApplication
@MapperScan("com.jhy.mapper")
public class SpringbootDynamicApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDynamicApplication.class, args);
}
}
2.service
在对应方法上添加DS注解来区分不同源
public interface UserService {
public void getUser();
public void getUser1();
}
@Slf4j
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
@DS("master")
public void getUser() {
List<User> user = userMapper.getUser();
log.info("查询出来的用户数据List:{}",user.toString());
}
@DS("slave")
@Override
public void getUser1() {
User userById = userMapper.getUserById();
log.info("查询出来的用户数据ById:{}",userById.toString());
}
}
3.controller
@Slf4j
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/user")
public void getUser(){
userService.getUser();
userService.getUser1();
}
}
三.启动应用
区分了不同的数据源