-
[Spring] @Autowired의 위치와 Required 옵션프로그래밍 공부/Spring 2021. 4. 30. 21:31
뉴렉처 강사님의 동영상 강의를 정리한 글입니다.
@Autowired와 @Qualifier의 위치
1. setter 함수 위
2. field 위 -> 기본 생성자에서 객체 binding
3. 오버로드 생성자 위
3번의 경우 여러개의 argument를 가질 수 있기 때문에
각 argument 앞에 @Qualifier을 붙여 주어야 한다.
@Autowired public InlineExamConsole( @Qualifier("exam1")Exam exam1, @Qualifier("exam2")Exam exam2) { System.out.println("overloaded constructor"); this.exam = exam1; }
@Autowired를 설정한 경우 DI할 객체가 없으면 에러가 발생한다.
하지만, 이후에 객체를 DI 할 수도 있고 현재 DI를 하지 않아도 문제될 상황이 아니라면,
에러가 나지 않는 것을 원할 수 있다.
이때 Autowired의 required 옵션을 이용하여 DI 할 객체가 없더라도 에러가 나지 않도록 설정해 줄 수 있다.
@Autowired(required = false) @Qualifier("exam2") private Exam exam;
'프로그래밍 공부 > Spring' 카테고리의 다른 글
[Spring] @Component의 종류와 시멘틱 @Component (0) 2021.04.30 [Spring] Annotation을 이용한 객체생성 (0) 2021.04.30 [Spring] @Autowired와 @Qualifier (0) 2021.04.30 [Spring] Annotation 이용의 장점과 @Autowired를 이용한 DI (0) 2021.04.30 [Spring] 콜렉션 생성과 DI (0) 2021.04.30