728x90
직접 설정 파일을 등록해서 스프링 빈으로 등록하기

- 직접 Configuration 어노테이션을 붙여 빈으로 등록할 클래스임을 명시하여 주고 @Bean으로 빈을 등록한다.
DI 주입에는 필드 주입, setter 주입, 생성자 주입 세 가지가 있다.
- 생성자 주입 = 생성자로 의존성을 넣어준다.
- 필드 주입
-

필드 주입 - memberService를 중간에 바꿀수 있는 방법이 없어서 선호하지 않는다( Mock 객체로 변환하여 Test 하기 힘들다)
-
- setter주입

setter 주입 - 처음 세팅이 되면은 변경될 일이 없지만 public으로 노출되어 있기 때문에 변경될 위험이 있다.
- 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다. 그리고 정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록한다.
- 다른 코드를 건들지 않고, 설정 파일만 수정하여 변경만 하면된다(스프링 장점)
- 주의: @Autowired 를 통한 DI는 helloConroller , memberService 등과 같이 스프링이 관리하는 객체에서만 동작한다. 스프링 빈으로 등록하지 않고 내가 직접 생성한 객체에서는 동작하지 않는다
- 스프링 빈에 등록되지 않은 객체를 가지고 @Autowire와 같은 기능 사용 x
728x90
'스프링 입문' 카테고리의 다른 글
| Ch05. 회원 관리 예제 (웹 MVC 개발회원 웹 기능) - 회원 웹 기능 - 등록 (0) | 2021.11.28 |
|---|---|
| Ch05. 회원 관리 예제 (웹 MVC 개발회원 웹 기능) - 홈 화면 추가 (0) | 2021.11.28 |
| Ch04. 스프링 빈과 의존관계 - 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2021.11.27 |
| Ch03. 회원 관리 예제(백엔드 개발) - 회원 서비스 테스트 (0) | 2021.11.26 |
| Ch03. 회원 관리 예제(백엔드 개발) - 회원 서비스 개발 (0) | 2021.11.26 |