今天配置了多数据源,检查代码很多遍找不出原因,配的没有任何问题。但是就是无法切换数据源。
后面发现原因:
我把代码放在了service包下,代码如下
@Service("apiDataService")
public class ApiDataServiceImpl extends ServiceImpl<ApiDataDao, ApiDataEntity> implements ApiDataService {
@DS("db2")
@Override
public byte[] getFileByFileName(String fileName){
QueryWrapper<ApiDataEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("file_name",fileName);
ApiDataEntity apiDataEntity = getOne(queryWrapper);
if(apiDataEntity!=null){
return apiDataEntity.getJsonFile();
}
return null;
}
}
但是我的配置文件中,取消了service包下的事务。
tianku:
transaction:
execution: "execution (* com.juhe.zhenkong.service..*.*(..))"
因为事务被取消了,所以无法访问切换到db2数据源。具体为什么要开启事务的原因还不知道,有知道的朋友希望可以在评论区留言。