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
'SpringBoot' 카테고리의 다른 글
Spring ResponseEntity이 뭔데 (2) | 2023.12.19 |
---|---|
SpringBoot - 세션을 사용한 로그인 - 로그아웃 처리 (0) | 2023.06.17 |
SpringBoot @Bean, @Autowired, 레이어드 아키텍쳐 (0) | 2022.12.21 |
22.11.11 WEB 이론 (0) | 2022.11.11 |
22.07.06 스프링 (0) | 2022.07.06 |