SpringBoot
자바 코드로 직접 Spring @Bean을 등록하는 방법
함형우
2022. 12. 21. 14:07
728x90
자바 코드로 직접 Spring @Bean을 등록하는 방법
우리는 @Repositroy, @Service 같은 어노테이션을 사용하여 bean을 등록하는 경우가 많았는데, 이번엔 기본적으로 어노테이션 없이 @Bean을 등록하는 방법을 알아보려고 한다.
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService() {
return new MemberService();
}
}
@Configuration 을 사용하고, @Bean 으로 어노테이션을 설정해주면 스프링 컨테이너에 할당한다. MemberService가 컨테이너에 할당된다. MemberService() 내부에 memberRepository 구현체를 지정해주어야 MemberService와 Repository를 스프링빈에 등록한다. Spring bean에 등록된 repositroy를 MemberServcie에넣어준다.
두 개의 방법에 각각 장단점이 존재한다. 런타임중에 바꿀 일이 없기때문에 Setter는 사용하지 않는다. ( 실행중에 동적으로 바꿀일은 전무함 ) 실무에서는 정영화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다. 정형화 되지 않았거나, 상황에 따라 구현 클래스를 변경하면 Bean을 통해 설정을 등록한다.
728x90