스프링 입문

Ch04. 스프링 빈과 의존관계 - 자바 코드로 직접 스프링 빈 등록하기

webmaster 2021. 11. 27. 11:33
728x90

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

직접 Bean 등록, 설정

  • 직접 Configuration 어노테이션을 붙여 빈으로 등록할 클래스임을 명시하여 주고 @Bean으로 빈을 등록한다.

DI 주입에는 필드 주입, setter 주입, 생성자 주입 세 가지가 있다.

  • 생성자 주입 = 생성자로 의존성을 넣어준다.
  • 필드 주입 
    •  
      필드 주입
    • memberService를 중간에 바꿀수 있는 방법이 없어서 선호하지 않는다( Mock 객체로 변환하여 Test 하기 힘들다)
  • setter주입
    • setter 주입
    • 처음 세팅이 되면은 변경될 일이 없지만 public으로 노출되어 있기 때문에 변경될 위험이 있다.
  • 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다. 그리고 정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록한다.
    • 다른 코드를 건들지 않고, 설정 파일만 수정하여 변경만 하면된다(스프링 장점)
  • 주의: @Autowired 를 통한 DI는 helloConroller , memberService 등과 같이 스프링이 관리하는 객체에서만 동작한다. 스프링 빈으로 등록하지 않고 내가 직접 생성한 객체에서는 동작하지 않는다
    • 스프링 빈에 등록되지 않은 객체를 가지고 @Autowire와 같은 기능 사용 x
728x90