• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

제가 이해한 내용이 맞을까요?

24.02.23 21:10 작성 조회수 97

0

public class AppConfig {
    @Bean
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }
    @Bean
    public OrderService orderService() {
        return new OrderServiceImpl(
                memberRepository(),
                discountPolicy());
}
    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
    @Bean
    public DiscountPolicy discountPolicy() {
        return new RateDiscountPolicy();
    }
}

AppConfig 클래스는 각 의존관계 함수들을 @Bean을붙였는데

@Configuration
 @ComponentScan(
         excludeFilters = @Filter(type = FilterType.ANNOTATION, classes =
 Configuration.class))
 public class AutoAppConfig {
 }

AutoAppConfig클래스는 @ComponentScan 어노테이션을 붙이고

각 구현 클래스에서는 @component 어노테이션을,의존관계가 필요한 생성자에는 @Autowirde어노테이션을 붙이면 AppConfig클래스처럼 각 함수를 다 구현하지 않아도 된다는 말씀인건가요?

답변 1

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2024.02.24

안녕하세요. 임다정님, 공식 서포터즈 OMG입니다.

네, 이해하신게 맞습니다.

전자의 경우 수동 (스프링) 빈 등록 (방식) , 후자의 경우 자동 (스프링)빈 등록 (방식) 이라고 표현합니다 😀

생성자 @Autowirde어노테이션을 추가하는 것을

생성자 의존관계(=의존성) 주입 이라고 하는데,

의존성 주입은 자동으로 등록되는 빈과 수동으로 등록되는 빈 모두 의존성 주입이 가능합니다.

감사합니다.

임다정님의 프로필

임다정

질문자

2024.02.24

감사합니다!