참치코더의 꿈 메모장

Spring / DI 옵션 처리, 생성자 주입 선택해야 하는 이유 정리 본문

Spring

Spring / DI 옵션 처리, 생성자 주입 선택해야 하는 이유 정리

참치깡 2025. 8. 6. 17:43
728x90

옵션 처리

- 주입할 스프링 빈이 없어도 동작해야 할 때가 있다.
- @Autowired(required) 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다.

자동 주입 대상을 옵션으로 처리하는 방법 3가지

 

전체 코드 부분(DI 옵션 처리방법 3가지)



 ** @Nullable, Optional<>은 스프링 전반에 걸쳐서 지원된다. 생성자 자동 주입에서 특정 필드에서 검사할때 사용해도 된다.

 

생성자 주입을 꼭 사용해야 하는 이유

1. 불변

- 대부분의 의존관계 주입은 한번 일어나면 애플리케이션 종료시점까지 의존관계를 변경할 일이 없다. 
- 수정자 주입을 사용하면, setX 메서드를 public으로 열어두어야 한다.
- 생성자 주입은 객체를 생성할 때 1번만 호출되므로 불변하게 설계할 수 있다.

2. 누락

- 생성자 주입을 사용하면 주입 데이터를 누락 했을 때 컴파일 오류가 발생한다.
- 테스트 할때 어떤 값을 필수로 입력해야 하는지 쉽게 코드를 까지 않고 알 수 있다.

3. final 사용

- 생성자 주입을 사용하면 필드에 final 키워드들 사용할 수 있다. 따라서 생성자에서 값이 설정되지 않는 오류를 
  컴파일 시점에서 막아준다.

- 수정자 주입을 포함한 나머지 주입 방식은 모두 생성자 호출 이후에 사용되므로, 필드에 final 키워드를 사용할 수 없다.

728x90
Comments