xml을 사용하여 빈을 주입 받는데

어노테이션을 사용하여 빈을 받을수도있고

종류가 너무많아서 기억은 못하겠는데 엄청 많은거같다

오늘은 @Autowired를 써서 해보겠다. 간단하게 말하면 "자동주입"이다


일단 빈설정을 몇개 긁어넣어주고

<context:annotation-config/> 를 추가하면 된다.


이제부터 @Autowired를 사용해보기에 앞서

비슷한녀석으로는 @inject가 있다고하는데 둘다

구글에 검색해보니 Autowired가 Inject보다 검색결과가 두배가 많다

Autowired가 많이 사용되나보다.


여튼 의존성을 가지는 부분(생성자, 세터, 필드)에 @AutoWired를 얹어준다.


만약 주입할 빈을 찾을수없으면 NoSuchBeanDefinitionException 예외가 뜬다.

검색해보니 service객체를 못찾는게 원인이라고한다.

required를 false로 설정해주면 된다. ex) @AutoWired(required = false)

그러면 예외가 뜨지않고 그냥 넘어간다.


========================================================================

JSR은 자바플랫폼을 위한 의존성주입을 표준화했다고한다.

메이븐을 쓰면 javax.inject를 추가하면 되는데

안에 인터페이스랑 어노테이션들이 들어있다.

스프링에 비슷한기능들이라고 한다. 귀찮아서 대충만 봤다.

스프링에서는 스프링에서 정의한 어노테이션을 쓰고

자바에서 의존성주입기능을 쓸때 JSR을 쓰면 되지않을까??

spring JSR

오토와이어드 인젝트

컴포넌트 네임드

스코프 싱글톤

....

이렇게 1대1매칭이 되는듯하다.

아무튼 끝

운동가기전까지 조금하다가 오늘공부는 끝내겠다.