@Resource 활용 팁
스프링에서 @Autowired와 @Resource. 이 둘의 가장 큰 차이는 하나는 by-type이고, 하나는 by-name이라는 것. 주로 @Autowired를 사용해서 보통 다음과 같이 코딩합니다.
public class Post {
@Autowired private Cate cate;
...
}
그런데 만약에 Cate 타입이 두 종류라면.. MainCate, SubCate. 이렇게 나눴다고 치고 위의 코드를 실행하면 에러가 닙니다. NoSuchBean뭐시기 Exception이 나면서 해당 타입의 빈이 1개가 아니다. 라는 예외가 발생하요. 그럴 때 처방으로 보통..
public class Post {
@Autowired @Qulifier("mainCate")
private Cate maincate
...
}
이렇게 @Qulifier를 사용하곤 하는데.. 사실 저걸 @Resource로 바꾸면 굉장히 간단해집니다.
public class Post {
@Resource private Cate maincate
...
}
캬~~ 간단하죠. @Resource 애노테이션을 사용하려면 jsr250-api.jar 파일을 추가해주면 됩니다. 메이븐을 사용하고 있다면
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
이렇게 추가해주면 끝..