다양한 의존 관계 주입 방법 중 지금까지 생성자 주입 방식을 사용했으며
수정자 setter를 주입하는 방법,
필드에 바로 주입하는 방법,
일반 메서드를 통해 주입하는 방법,
자동 주입 대상을 옵션으로 처리하는 방법이 있다.
생성자 주입 방식을 선택하는 이유는
프레임 워크에 의존하지 않고 순수 자바 언어의 특징을 살리기 위함이다
생성자 주입을 사용하는 것이 기본적이며
필수 값이 아닌 경우에는 setter 주입 방식을 옵션으로 부여하는 방식을
사용할 수 있다.
생성자 주입과 수정자 주입을 동시에 사용할 수 있으며
생성자 주입 방식을 추천하는 편이다.
Lombok 라이브러리를 제공하면 코드를 비교적 간단하게 정리할 수 있으며
final 키워드가 있는 필드들만 모아 생성자를 자동으로 만들어주는
@RequiredArgsConstructor 어노테이션을 사용할 수 있다.
생성자가 하나만 있는 경우에는 @Autowired 어노테이션을 생략할 수 있다.
@Autowired (required = false)
자동 주입 대상이 없을 때 수정자 메서드가 호출되지 않는다.
-> required 옵션 기본값은 원래 true
Optional<>
자동 주입 대상이 없을 때 Optional.empty()가 입력된다.
같은 타입의 빈이 2개 이상일 때
@Autowired 필드명 매칭 방법과
@Qualifier 어노테이션 사용 방법으로 해결할 수 있다.
@Autowired는 타입 매칭을 시도했을 때 여러 개의 빈이 있다면
필드명과 파라미터명으로 빈 이름을 추가 매칭한다.
@Qualifier 어노테이션 사용하면 빈 이름이 변경되지는 않는다.
'[ Development ] > [ Back-end ] Spring 기본' 카테고리의 다른 글
[Spring/Swagger] SpringBoot의 Spring Security 환경에서 Swagger 적용시 로그인 화면 임시 해결 방법 (0) | 2024.02.15 |
---|---|
[Spring/Swagger] 스프링부트에서 Swagger 사용하기 :: springdoc-openapi-ui 라이브러리 (0) | 2024.02.15 |
[Spring 스프링 기본] 컴포넌트 스캔 (1) | 2023.12.05 |
[Spring 스프링 기본] 싱글톤 컨테이너 (1) | 2023.11.28 |
[Spring 스프링 기본] 스프링 컨테이너와 스프링 빈 (0) | 2023.11.21 |
[Spring 스프링 기본] 객체 지향 원리 적용 (0) | 2023.11.14 |
[Spring 스프링 기본] 2. 핵심 원리 이해 1 - 예제 만들기 (0) | 2023.11.07 |