Open kyupid opened 2 years ago
필드 인젝션시에 DI 로 밖에 빈을 등록할수밖에 없으므로 유연하지못하다(테스트 등) 테스트 시에 순수자바코드로 테스트할수없다. 할려면 스프링컨테이너를 띄어야한다
@Test
public void fieldInjectionTest() {
Service service = new Service();
service.setSomeRepository(new MemoryExampleReposirory);
service.saveUser(new User());
}
이런식으로 순수자바코드로 하려면 보다시피 setSomeRepository로 새로운 리포지토리를 넣어줘야하는데
필드에서 @Autowired
하면 DI 로밖에 넣을수없기때뭄에 어쩔도리가 없음
영한님 말씀으론 위 이유릉 예시로 들어서 말씀하시는데 이거가지곤 잘 납득이 안되긴하다. 그냥 테스트할때 컨테이너 띄우면 안되나? 테스트가 많으면 너무 오래걸려서인가?
학습하기