作者:倾城不了倾了你 | 来源:互联网 | 2023-01-28 22:27
项目被配置为使用多个MongoTemplate小号
Mongo Ref被传递为
@EnableMongoRepositories(basePackages={"com.mypackage.one"}, mOngoTemplateRef="mongoTemplateOne")
对于包中的存储库 com.mypackage.one
和
@EnableMongoRepositories(basePackages={"com.mypackage.two"}, mOngoTemplateRef="mongoTemplateTwo")
对于包中的存储库 com.mypackage.two
对于标准存储库,它工作正常.但对于我需要自定义行为的场景,我定义了myRepoCustomImpl以及我的自定义行为需求.
问题:我需要访问类似标准存储库的MongoTemplate.
例如,如果MyRepo
将MyRepoCustom
接口扩展为
@Repository
interface MyRepo extends MongoRepository, MyRepoCustom{}
MyRepoCustomImpl
@Service
public class MyRepoCustomImpl implements MyRepoCustom{
@Autowired
@Qualifier("mongoTemplateOne")
MongoTemplate mongoTmpl;
@Override
MyEntity myCustomNeedFunc(String arg){
// MyImplemenation goes here
}
}
如果MyRepo在包中com.mypackage.one
,myRepomongoTemplateOne
将使用它,所以应该有一些方法让MyRepoCustomImpl知道它也应该使用mongoTemplateOne,每当我在mongoTemplateRef
for中进行更改时MyRepo
,比如说
@EnableMongoRepositories(basePackages={"com.mypackage.one"}, mOngoTemplateRef="mongoTemplateThree")
现在我需要对@Qualifier进行更改MyRepoCustomImpl
!自定义行为有很多回购,因此它变得繁琐乏味.
问题:相反,没有任何方法可以根据它扩展到的回购自动注入或解决使用的MongoTemplate?