[Spring] 스프링 입문 - 스프링 빈과 의존관계 (자바 코드로 직접 스프링 빈 등록하기)

jy9922·2022년 8월 9일
0

Spring

목록 보기
6/34
post-thumbnail

자바 코드로 직접 스프링 빈 등록하기 🥜

같은 패키지에 SpringConfig Class를 생성해 직접 스프링 빈을 등록해주는 코드를 넣어준다.

@Configuration
public class SpringConfig {

    @Bean
    public MemberService memberService(){
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository(){
        return new MemoryMemberRepository();
    }
}

🔹 참고

DI에는 필드 주입, setter 주입, 생성자 주입 이렇게 3가지 방법이 있다. 의존 관계가 실행 중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다.

// 생성자 주입
@Autowired
public MemberController(MemberService memberService){
	this.memberService = memberService;
}

🔹 참고

  • 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다.
  • 정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록한다.

🔸 주의

@Autowired를 통한 DI는 helloController, MemberService 등과 같이 스프링이 관리하는 객체에서만 동작한다.
스프링 빈으로 등록하지 않고 내가 직접 생생한 객체에서는 동작하지 않는다.

0개의 댓글