본문 바로가기
Programing/Spring

Spring Bean 생성 및 주입 방법

by Tomining 2015. 6. 23.
Spring Bean 생성 및 주입 방법에는 여러가지가 있다.

Spring Framework 특성상 IoC 컨테이너인 ApplicationContext(통용되는 이름) 이 생성한다.
이 때 xml로 설정하는 방법도 있지만, Spring 3.1 이상부터는 Annotation을 많이 활용한다.

Annotation에는 아래와 같이 존재한다.
  • @Component
    Spring 컨테이너에게 Bean 생성 대상임을 알리는 Annotation이다.
    해당 Annotation이 있으면 스프링 컨테이너는 해당 클래스를 Bean으로 생성한다.
  • @Service
    현재로서는 @Component와 차이가 없다. 다만 해당 클래스가 Service Layer 임을 명시적으로 알릴 수 있으니, 목적에 맞게 @Component와는 구분하여 사용하는 것이 좋다.
  • @Repository
    보통 DAO 클래스를 Bean으로 생성할 때 사용한다.
    @Component와 차이점은 Exception이 발생했을 때, UncheckedException에 대해서 Spring DataAccessException으로 변환을 해준다.
  • @Controller
    Client의 Request를 받아서 처리하는 클래스에 사용된다.
참고)


이렇게 생성된 Bean을 어떻게 주입할 수 있을까?
4가지 방법이 지원된다.

  • @Autowired
    Type 기반 Bean 주입
  • @Resource
    Name 기반 Bean 주입
  • @Inject
  • @Qualifier
참고)

Java와 Spring에는 수많은 Annotation이 있다. 유사한 기능을 하는 Annotation도 많지만 각각 목적이 있으므로,
그 목적에 맞는 Annotation을 사용하길 권장한다.