[SPRING] 스프링에서 인스턴스화에 대한 자동 와이어 링
SPRING스프링에서 인스턴스화에 대한 자동 와이어 링
저는 최근에 Spring을 사용하기 시작했습니다. 그리고 봄 mvc 프로젝트를 만들고 있습니다. 그래서 내 질문에 인터페이스를 만들고 특정 구현 봄 또는 그냥 클래스 인스턴스를 사용하여 경우 해당 인터페이스 중 하나의 구현을 가지고 autowire 것이 좋습니다?
예 :
@Controller
public class MyController {
@Autowired
MyService myService;
@RequestMap("/")
public String mainPage() {
...
}
}
또는
@Controller
public class MyController {
@RequestMap("/")
public String mainPage() {
MyService myService = new MyServiceImpl();
...
}
}
MyService 인터페이스의 구현이 1 개 뿐인 경우?
해결법
-
==============================
1.대부분의 경우 다음과 같은 이유로 주사해야합니다.
대부분의 경우 다음과 같은 이유로 주사해야합니다.
서비스에 인터페이스가 없더라도 두 번째 이유 때문에 주입을 고려해야합니다.
Spring을 건너 뛰고 싶을 유일한 경우는 클래스가 종속성이없고 상태가없는 경우입니다. 그러나 그러한 클래스는 정적 멤버 만 있기 때문에 인스턴스를 전혀 필요로하지 않는 유틸리티입니다.
-
==============================
2.MyService가 상태를 보유하고있는 bean인지 아닌지에 달려 있습니다. MyService가 상태를 유지하지 않으면 새로운 인스턴스를 생성 할 필요가 없으며 위에서 설명한 장점을 가진 Spring을 삽입하도록 Spring을 허용 할 수있다.
MyService가 상태를 보유하고있는 bean인지 아닌지에 달려 있습니다. MyService가 상태를 유지하지 않으면 새로운 인스턴스를 생성 할 필요가 없으며 위에서 설명한 장점을 가진 Spring을 삽입하도록 Spring을 허용 할 수있다.
from https://stackoverflow.com/questions/7362555/autowiring-vs-instantiating-in-spring by cc-by-sa and MIT license