차곡차곡 성 쌓기
Published 2023. 12. 14. 17:32
스프링 : 빈 등록하기 스프링 부트

🫛 빈 등록하기

방법 1 : 자바 코드로 등록하는 방법

  • @Configuration
  • @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }
  • 스프링 컨테이너가 MemberServiceMemberRepository스프링 빈으로 등록한다.
  • 등록된 MemberRepository를 멤버서비스에 넣어준다.

방법 2 : 애노테이션 이용

  • @Service, @Controller, @Respository (모두 @Component 상속)
    • 스프링 컨테이너가 패키지 내부를 모두 뒤져 component를 찾아 빈으로 등록한다.
    • 싱글톤으로 만들어진다.
    • 빈에게 특정 객체를 주입하려면 특정 객체도 빈이여야 한다.
  • @Autowired
    • 의존성 주입
    • 스프링 컨테이너가 등록된 빈 중 주입해야 될 빈을 찾아서 넣어준다.
    • @Service public class MemberService { private final MemberRepository memberRepository; @Autowired public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } }

DI에는 필드 주입, setter 주입, 생성자 주입 이렇게 3가지 방법이 있다. 실행중에 의존관계가 변하는 경우는 없어야한다. 초기에만 설정 가능하도록 생성할 때만 의존성을 주입하여 변경한다.

정형화된 빈은 @Service, @Controller, @Respository 으로 등록한다. 하지만 바뀔 여지가 있는 빈은 코드로 등록한다. ( Ex : db가 정해지지 않았을 때.., )

728x90
profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 "좋아요" 해주세요!