@Autowired 어노테이션
org.springframework.beans.factory.annotation 패키지에 위치한 @Autowired 어노테이션은 의존 관계를 자동으로 설정할 때 사용된다.
@Autowired어노테이션은 타입을 이용하여 의존하는 객체를 삽입해 준다.
@Autowired어노테이션은 생성자, 필드, 메서드 세 곳에 적용이 가능하다.
프로퍼티 설정 메서드에 @Autowired 어노테이션을 적용한 예.
public class MonitorViewer implements Views {
private DisplayStrategy displayStrategy;
@Autowired
public void setDisplayStrategy(DisplayStrategy displayStrategy) {
this.displayStrategy = displayStrategy;
}
....
}
@Autowired 어노테이션은 타입을 이용한 프로퍼티 자동 설정 기능을 제공, displayStrategy프로퍼티에 DisplayStrategy 타입의 빈 객체를 전달한다.
@Autowired 어노테이션을 이용한 자동 설정을 적용하려면 AutowiredAnnotationBeanPostProcessor 클래스를 스프링 설정 파일에 빈 객체로 등록해 주어야 한다. <context:annotation-config>태그를 사용해도 됨.
@Autowired 어노테이션은 프로퍼티 설정 메서드와 일반 메서드에서도 적용 가능하다. 메서드 이름이 setXXX() 형식이 아니더라도 @Autowired 어노테이션을 적용할 수 있다.
public class HomeController {
private AlarmDevice alarmDevice;
private Viewer viewer;
@Autowired
public void prepare(AlarmDevice alarmDevice, Viewer viewer) {
this.alarmDevice = alarmDevice;
this.viewer = viewer;
}
}
@Autowired
private DisplayStrategy displayStrategy;
멤버 필드에 직접 @Autowired 어노테이션을 적용해도 된다.
prepare() 메서드에 @Autowired 어노테이션을 적용했는데, 이 경우 스프링은 HomeController 객체를 생성할 때 prepare() 메서드에 AlarmDevice타입의 빈(Bean) 객체와 Viewer타입의 빈 객체를 전달한다.
출처 : 웹개발자를 위한 SPRING 3.0 프로그래밍
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 CLI 설치 (Mac OS X, Homebrew) (0) | 2019.01.08 |
---|---|
@Resource 어노테이션 (0) | 2018.12.19 |
@Required 어노테이션 (0) | 2018.12.18 |
Bean 범위(scope) (0) | 2018.12.18 |
스프링(Spring) 컨테이너 (0) | 2018.12.17 |