스프링 빈과 의존관계

이가현·2022년 9월 23일
0

스프링

목록 보기
3/6

📒 컴포넌트 스캔과 자동 의존관계 설정

📍 스프링 빈을 등록하는 2가지 방법

  • 컴포넌트 스캔과 자동 의존관계 설정
  • 자바 코드로 직접 스프링 빈 등록하기

📍 컴포넌트 스캔 원리

@Service
    public class MemberService {
        private final MemberRepository memberRepository;
        
        @Autowired
        public MemberService(MemberRepository memberRepository) {
            this.memberRepository = memberRepository;
        }
}
  • 생성자에서 @Autowired로 연결 시켜주기 (스프링 컨테이너에 의존 관계 주입시켜주는 것 = DI )
    -> 여러 컨트롤러 간에 공유하면서 사용가능

  • @Controller
    @Service
    @Repository
    -> 스프링 빈으로 자동 등록됨

🔴 주의: @Autowired 를 통한 DI는 helloController , memberService 등과 같이 스프링이 관리하는 객체에서만 동작한다.

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

@Configuration
public class SpringConfig {
	@Bean
    public MemberService memberService() {
    	return new MemberService(memberRepository());
   }
   
   @Bean
   public MemberRepository memberRepository() {
   		return new MemoryMemberRepository();
   }
}

0개의 댓글