spring 에서는 new를 적게사용하는 것이 좋다=> 낮은 결합도 new .xml설정파일에서 <bean id=""></bean> @Component("") >>>>>@webServlet() => not POJO POJO에게 어노테이션이 붙으면 component
.xml 파일에 context 로 스캔해야 한다
주입하고 싶은멤버변수 위에 @Autowired //생성자주입 셋터주입과 같은 DI
@component 옆에 이름이 있을 경우 사용자가 사용할 가능성이 높고 만약 없다면 의존관계일 확률이 높다
@Autowired : 자료형을 보고 DI해주는데 이름이 꼭 필요하지는 않다
어노테이션을 사용하면 모호성 이슈가 생긴다
오토와이어는 자료형만을 본다(이름을 보지 않고)
<해결방법> 1.xml +@ 혼합사용하여 해결 @component("apple") @aitpwored DI대상이 되는 키위키위, 골드키위는 어노테이션을 하지 않는다 그리고 xml에서 빈으로 설정한다 필요한 객체를 그때그때 설정한다
총정리 어노테이션을 줄어보자! bean은 컴포넌트로 줄일수있고 생성자주입과 셋터주입은 오토와이어로 줄일 수 있다 하지만 오토와이어는 자료형만을 본다 컴포넌트를 보고 의존형인지 알 수있다 그래서 모호성 이슈가 있을 수 있다 혼합 사용하여 해결할 수 있다