二、tienchin健身系统下的技术点复现--动态数据源
二、配置动态数据源
前面我们已经准备了基础的类,@DynamicDatasource、DruidProperties、DynamicAspect
现在我们开始对 AbstractRoutingDatasource 所需要的数据源,放到对应的map结构中。
1、加载数据源
2、设置默认、目标数据源
到了这一步基本就设置完成,总的来说就是依据 AbstracRoutingDataSource 来存储 target 和 default 的数据源,重写 determineCurrentLookupKey 方法。
3、单元测试
3.0 创建service、mapper、domian
@Service
public class LoginUserService {
@Autowired
private LoginUserMapper loginUserMapper;
public List<LoginUser> getAllLoginUsers() {
return loginUserMapper.getAllLoginUsers();
}
}
public class LoginUser {
private Long id;
private String name;
@Override
public String toString() {
return "LoginUser{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Mapper
public interface LoginUserMapper {
/**
* 查找所有的登录用户
*
* @author 山沉
* @date 2023/6/4 10:41
* @return {@link List< LoginUser>}
*/
@Select("select * from t_login_user")
List<LoginUser> getAllLoginUsers();
}
然后看下数据库
tesdb2、testdb 两个库中有相同的t_login_user表
slave对应如下

master对应如下

3.1 直接访问
直接访问,不添加注解,是默认数据源

3.2 加注解访问

弯弯月亮,只为美好的自己。