카테고리 없음
DI의 세가지 방법
ernest45
2023. 8. 4. 16:58
1. 생성자를 통해 주입
2. 필드에다가 @autowired (필드 주입)
별로 좋지가 않다.
바꿀 수 있는 방법이 없고 스프링이 뜰 때만 넣어주고, 우리가 바꿀 방법이 없어짐 권장하지 않음
3.setter 주입
단점으로는 누군가가 멤버 컨트롤러를 호출 했을 때 public으로 열려있어야 한다. (노출됨)
중간에 한번 정해지면 바꿀 일이 없는데 (애플리케이션을 로딩 시점에 (조립할 때 ) 바꾸는 거지 한번 세팅되면 바꿀 일이 없다)
이렇게 누군가 바꿀 가능성이 생긴다
1. 생성자를 통한 주입을 쓰자
애플리케이션이 조립될 때 스프링 컨테이너 올라가고 세팅되는 시점에 들어오고 끝남
@autowired의 적용범위 ?
ex) 멤버 서비스가 스프링에 등록되고 관리를 해야 스프링이 @autowired를 동작한다
(스프링 빈에 등록된 것들과 빈 관리하는 컴포넌트)
이렇게 직접 new로 생성해도 작동하지 않는다
스프링 컨테이너에 올라 가는 것들만 @autowired가 동작한다