스프링 빈 등록 자동/수동 선택

justindevcode·2023년 3월 22일
0

스프링부트

목록 보기
34/39
post-thumbnail

스프링 빈 등록 자동/수동 선택


결론부터 이야기하면, 스프링이 나오고 시간이 갈 수록 점점 자동을 선호하는 추세다. 스프링은
@Component 뿐만 아니라 @Controller , @Service , @Repository 처럼 계층에 맞추어 일반적인
애플리케이션 로직을 자동으로 스캔할 수 있도록 지원한다

그러면 수동 빈 등록은 언제 사용하면 좋을까?

기술 지원 빈: 기술적인 문제나 공통 관심사(AOP)를 처리할 때 주로 사용된다. 데이터베이스 연결이나,
공통 로그 처리 처럼 업무 로직을 지원하기 위한 하부 기술이나 공통 기술들이다.

애플리케이션에 광범위하게 영향을 미치는 기술 지원 객체는 수동 빈으로 등록해서 딱! 설정 정보에 바로
나타나게 하는 것이 유지보수 하기 좋다.

또는
비즈니스 로직 중에서 다형성을 적극 활용할 때
조회한 빈이 모두 필요할 때, List, Map 이런거 사용할때 자동주입인경우에는 뭐가 들어왔는지 알수가없음 근데

@Configuration
public class DiscountPolicyConfig {
 
 @Bean
 public DiscountPolicy rateDiscountPolicy() {
 return new RateDiscountPolicy();
 }
 @Bean
 public DiscountPolicy fixDiscountPolicy() {
 return new FixDiscountPolicy();
 }
}

이런식으로 자바class로 등록을 해버리면 머가 쓰이는지 코드로 바로보이니깐 좋기도함

그래도 빈 자동 등록을 사용하고 싶으면 파악하기 좋게 DiscountPolicy 의 구현 빈들만 따로 모아서 특정 패키지에
모아두자

profile
("Hello World!");

0개의 댓글