Closed noroadzh closed 5 years ago
继续跟踪下源码吧主要关注为什么没从注解上获取到值,,单纯看配置没发现问题,只建议在service上注解.
这个版本肯定没有这么低级的问题了. 只有自己调下源码了.
这个版本肯定没有这么低级的问题了. 只有自己调下源码了.
最近跟了几天 发现多个数据源的,解析出来是单数据源,还在看为啥
动态数据源都加载成功了,使用就不行
必须注解于Service实现类上,Mapper无效
必须注解于Service实现类上,Mapper无效
当上面那位仁兄说了 注解到Service上的时候,我已经修改了,但是修改了后 一样的 ds注解取到的值都是null,初始化加载都进去了,拿出来用就不行
问题解决了,原来是我项目中使用了shiro,将dynamicDatasource的注解给弄的失效了,处理方法是将shiro的多个策略弄到监听器中去做处理,也就是容器启动后再注入进去
引入shiro 配置读不到了,你的shiro策略怎么配的 ,能给个例子不?@noroadzh
我是有一个Service用不到,其他的地方都能切换成功,就这一个地方不起作用。 ---- service 层 @Service("stEncryptedDetailsService") @Slf4j @DS(MultiDataSourceCofig.BASE) public class StEncryptedDetailsServiceImpl extends ServiceImpl<StEncryptedDetailsDao, StEncryptedDetailsPO> implements StEncryptedDetailsService {
@Autowired
private StEncryptedDetailsDaoExt stEncryptedDetailsDaoExt;
@Autowired
private SraActionDaoExt sraActionDaoExt;
@Override
public String encrypt(String orgCode,String json) {
try {
String encrypt=json;
//如果机构编码为空
if (Strings.isNullOrEmpty(orgCode)){
//直接返回该字符串
return json;
}
---dao 层---@Mapper
@DS(MultiDataSourceCofig.BASE)
public interface StEncryptedDetailsDaoExt extends StEncryptedDetailsDao {
//根据机构编码查询加密信息
List
上面老兄正解,确实是shiro导致ds失效,解决办法,在你所需要注入的类上面加上@Lazy注解即可
上面老兄正解,确实是shiro导致ds失效,主要是加载顺序问题
我没有用shiro,一直不生效。我的项目用的是 jdk17+springboot 3.2.1+dynamic 4.3.0 +druid 1.2.19 + mybatis-plus 3.5.5
你的解决了吗,我也出现这样的问题。jdk17+springboot3.2.9+dynamic 4.3.0+mybatis-plus 3.5.7
Enviroment
JDK Version(required): jdk1.8 SpringBoot Version(required): 2.1.3.RELEASE Starter Version(required): 2.5.3
Describe
按照示例进行了项目改造,然后我不管在mapper还是serviceImpl里面设置ds源,都无效,直接全是primary设置的库,我跟踪进去后,发现DS的value注入值一直为null,调试跟踪没有解决掉,所以来请教下
项目使用了mybatisplus 3.1.0版本
跟了代码,发现在init load的时候,的确两个连接都进去了,但是在使用的时候,ds不能取到填写的那个value的值
Expected Result: 我的表system_user是在membermanage库,但是每次都是到我的默认库smartcampus
Actual Result:
期望能在指定库,不是在默认库
Steps to reproduce
Step 1
Step 2
Step 3