카테고리 없음

DI의 세가지 방법

ernest45 2023. 8. 4. 16:58

1. 생성자를 통해 주입

 

 

2. 필드에다가 @autowired (필드 주입)

별로 좋지가 않다.

바꿀 수 있는 방법이 없고 스프링이 뜰 때만 넣어주고, 우리가 바꿀 방법이 없어짐 권장하지 않음

 

 

3.setter 주입

 

 

단점으로는 누군가가 멤버 컨트롤러를 호출 했을 때 public으로 열려있어야 한다. (노출됨)

중간에 한번 정해지면 바꿀 일이 없는데 (애플리케이션을 로딩 시점에 (조립할 때 ) 바꾸는 거지 한번 세팅되면 바꿀 일이 없다)

 

이렇게 누군가 바꿀 가능성이 생긴다

 

 

1. 생성자를 통한 주입을 쓰자

애플리케이션이 조립될 때 스프링 컨테이너 올라가고 세팅되는 시점에 들어오고 끝남

 

@autowired의 적용범위 ?

 

ex) 멤버 서비스가 스프링에 등록되고 관리를 해야 스프링이 @autowired를 동작한다

(스프링 빈에 등록된 것들과 빈 관리하는 컴포넌트)

 

이렇게 직접 new로 생성해도 작동하지 않는다

스프링 컨테이너에 올라 가는 것들만 @autowired가 동작한다