본문 바로가기

Framework/Spring & Spring Boot

[Spring] 의존성 주입(DI) 방법 및 종류

반응형

- 생성자 주입

생성자 메소드에 주입하는 방식

 

주로 변하지않거나 필수인 의존관계에 사용

생성자가 하나가 있으면 Autowired 어노테이션 생략가능

필드를 final로 선언가능 -> 필수 주입을 컴파일에러로 알수있음

스프링 빈 라이프 사이클 중 빈 생성 단계에서 의존성 주입이 일어남

 

- 수정자 주입

Setter(수정자) 메서드에 주입하는 방식

 

Autowired 어노테이션 필수

   -> 주입할 대상이 없으면 오류가 난다 이때 required = false 옵션을 주면 주입이 없어도 동작됨

선택하고 변경가능한 의존관계에 사용

거의 사용하지않음.. 중간에 의존관계를 바꿀일은 잘 없음

스프링 빈 라이프 사이클 중 의존관계 주입 단계에서 의존성 주입이 일어남

 

- 필드 주입

필드에 직접 어노테이션을 붙혀 주입하는 방식

인텔리제이에서 추천하지않는 주입방식이라고 경고가 뜬다.

DI 프레임워크가 없으면 사용할 수 없는 방식

순수 자바 코드 테스트 시 테스트할 방법이 없음.(무조건 컨테이너를 띄워야함)

스프링을 띄워서 하는 테스트 코드나 스프링 설정파일인 Configuration에서만 간편하게 사용

    -> 실제 코드에선 사용하지 않는게 좋음

 

- 일반 메서드 주입

일반 메서드에 의존관계를 주입 (일반적으로 사용 X, 할수있다 정도만 아는게 맞는듯)

방식은 수정자 주입과 비슷하지만 여러 필드를 주입 받을수 있다.

일반적으로 사용하지않음.

 

반응형

'Framework > Spring & Spring Boot' 카테고리의 다른 글

[Spring Boot] CORS 설정  (0) 2021.07.09