我正在開發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