본문 바로가기
프로그래밍/Spring

@Autowired 어노테이션

by Mr-후 2018. 12. 18.
반응형

@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