티스토리 뷰


  1   어노테이션 기반 설정 - 2 . @Autowired



 @Autowired 어노테이션은 의존하는 객체를 자동으로 삽입해주며 생성자, 필드, 메서드 세 곳에 적용이 가능하다.



 @Autowired 어노테이션은 타입을 이용한 프로퍼티 자동설정기능을 제공한다. 위의 코드는 service 프로퍼티에 SpringTestService 타입의 빈 객체를 메서드를 통해 자동으로 주입해준다.



 @Autowired 어노테이션을 이용하여 자동 주입 설정을 적용하려면 AutowiredAnnotationBeanPostProcessor 클래스를 빈으로 등록해주어야하며 @Required 어노테이션과 마찬가지로 <context:annotation-config/> 설정을 추가하는것으로 대신해도 된다.



 @Autowired 어노테이션은 위의 코드와 같이 필드 및 생성자에도 적용시킬 수 있으며 spring프로퍼티에는 Spring 타입의 빈 객체를, 생성자에는 SpringTestService 타입의 빈객체를 매개변수로 자동 주입해준다.




  2   @Autowired 어노테이션 적용 프로퍼티의 필수 여부 설정





 @Autowired 어노테이션은 스프링 설정파일에 등록된 빈 객체를 검색한 후 어노테이션이 적용된 프로퍼티, 메서드, 생성자등에 객체를 주입해 줄때 타입을 이용하게 된다. 그렇기 때문에 해당되는 타입의 빈 객체가 설정파일에 존재 하지 않을시 예외를 발생시키게 되는데, 이를 방지하기 위하여 @Autowird어노테이션의 required 속성을 사용해야한다. 기본값으로는 "true"이며 이 속성을 "false" 설정시 해당 타입의 빈 객체가 존재하지 않더라도 예외를 발생 시키지 않는다.

댓글