Mybatis를 사용하고 Spring Boot 응용 프로그램을 개발 중입니다. Mybatis에 의해 인스턴스화 된 객체의 불변성을 보장하기 위해 Mybatis는 객체를 변경할 수 있도록하는 setter 대신 <constructor>
을 사용합니다. 다른 서수 오브젝트와 마찬가지로이 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++로 작성된 네이티브 모듈의 자바 래퍼 클래스입니다. 단위 테스트를 더 쉽게하기 위해 주입하고 싶습니다. – umainyosu