[Spring] @Autowired의 위치와 Required옵션
Spring
@Autowired의 위치
-
setter 위
setter함수가 호출되면서 injection이 수행됨 -
field 위
기본 생성자를 호출하면서 injection이 수행됨
기본 생성자가 없다면 error발생(위 코드와 같은 경우 오류 발생) -
overload 생성자 위
overload 생성자에서 객체를 바인딩
위와 같이하게 되면 @Qualifier에 오류가 발생한다
overload생성자 같은 경우에 Exam을 두 개 이상 넣을 수 있다고 생각해서 오류가 발생하게 되는 것!
파라미터 각자에 @Qualifier을 설정해서 해결
@Autowired의 required 속성
exam2라는 bean이 없는경우 어떻게 동작하는지 설정할 수 있는 속성이다.
required=false로 설정을 하게 되면 해당 bean이 없는경우 null이 된다.
print()문에서 null 조건 처리를 할 수 있게 됨.(xml파일에 드래그 된 부분이 주석처리 되어서 bean이 없는 경우이다.)
댓글남기기