개발/Spring

[Spring] Bean 등록 Annotation

hojak99 2017. 8. 21. 11:53

Bean 등록 Annotation


 @Component 

 컴포넌트를 나타내는 일반적인 스테레오 타입으로 <Bean> 태그와 동일한 역할을 한다. 

 @Repository 

 Persistence 레이어, 영속성을 가지는 속성(파일, 데이터베이스)을 가진 클래스 

 @Service 

 서비스 레이어, 비즈니스 로직을 가진 클래스 

 @Controller 

 프리젠테이션 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스 





Bean 의존관계 주입 Annotation


@Autowired, @Resource 어노테이션은 의존하는 객체를 자동으로 주입해 주는 어노테이션이다. 


@Autowired

- 정밀한 의존관계 주입 (Dependency Injection)이 필요한 경우에 유용하다.

- @Autowired는 프로퍼티, setter 메소드, 생성자, 일반메소드에 적용 가능하다.

- 의존하는 객체를 주입할 때 주로 Type 을 이용하게 된다.

- @Autowried 는 <property>, <constructor-arg> 태그와 동일한 역할을 한다.


@Resource

- 어플리케이션에서 필요로 하는 자원을 자동 연결할 때 사용된다.

- @Resource는 프로퍼티, setter 메소드에 적용 가능하다.

- 의존하는 객체를 주입할 때 주로 Name 을 이용하게 된다.


@Autowired, @Resource 어노테이션은 의존하는 객체를 자동으로 주입해 주는 어노테이션인데 @Autowired는 타입으로, @Resource는 이름으로 연결한다는 점이 다르다.




@Value

- 단순한 값을 주입할 때 사용되는 어노테이션이다.

- @Value("Spring") 은 <property .. value="Spring"/> 와 동일한 역할을 한다.


@Qualifier

- @Qualifier 는 @Autowired 어노테이션과 같이 사용되어 진다.

- @Autowired 는 타입으로 찾아서 주입하므로, 동일한 타입의 Bean 객체가 여러 개 존재할 때 특정 Bean 을 찾기 위해서는 @Qualifier 를 같이 사용해야 한다.


반응형