我正在开发Spring Boot应用程序并使用Mybatis。为了确保由Mybatis实例化的对象的不变性,我让Mybatis使用<constructor>
而不是使对象变为可变的setter。像其他序数对象一样,这些Mybatis实例化的对象需要依赖来完成它们的职责,而这些依赖有时是由Spring实例化的bean。我应该如何注入依赖到由Mybatis实例化的不可变域对象?
如果一个对象被Spring实例化,那么很容易为它注入依赖关系。但是显然,由Mybatis实例化的对象不在Spring的DI容器中,并且不能使用@Autowired
或其他Spring机制来注入它的依赖关系。
课程,由MyBatis的实例后手动我可以注入的依赖关系,如:
DomainA d = DomainAMapper.fetchOne();
d.setDependency(dependency);
但是,这打破了DomainA
不变性。
我该如何满足我的需求,即在保持其不可变性的同时将依赖项注入到Mybatis实例化对象?
你可以分享你想管理的相同的例子“依赖关系”吗?例如,告诉我一些DomainA中的依赖关系。 – Rafa
@Rafa感谢您的评论。我的意思是这里的依赖关系是在DomainA类中使用的其他类。在我目前的情况下,它是用C++编写的用于处理机器学习事情的本地模块的Java包装类。我想注入它以使单元测试更容易。 – umainyosu