多数据源场景中service注入失败

最后更新:2023-12-21 17:13:47 | 状态:未完成
如果是单个数据源默认情况下AnylineController中已经默认注入了一个AnylineService service;这个service可以操作多个数据源bean.id = @Service("anyline.service")
但是在多数据源情况下,为了更强的隔离性,避免线程共享时数据源混乱的问题,AnylineService会有多个实例,对应每个数据源。如数据源crm会生成一个@Service("anyline.service.crm")
具体规则参考【五种方式注册数据源
如果是在Java中注册的数据源,那可能是在spring上下文件初始化之后执行的,所以代码中的自动注入执行时这几个service还没有实例化,就注入不了。
推荐的方式是利用ServiceProxy获取相应的service,如
AnylineService  crm_service = ServiceProxy.service("crm") //这个service就只能操作crm数据源不可以切换
最近更新 搜索 提交