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을 사용하길 권장한다.
'Programing > Spring' 카테고리의 다른 글
Spring에서 Json을 파라메터로 넘겼을 때 어떻게 객체로 받을 수 있을까? (0) | 2017.07.21 |
---|---|
Method 주석에 @SQL은 무엇일까? DocletSqlMapClientFactoryBean이란? (0) | 2017.05.29 |
MyBatis 를 이용하여 executeBatch 처리하기 (0) | 2016.06.22 |
@Resource VS @Autowired (0) | 2015.03.12 |
AspectJ를 통한 Spring-AOP 설정 (0) | 2015.03.05 |