Spring

Spring Boot에서 사용되는 Bean 등록 방법

개발자 김마늘 2025. 3. 23. 23:12

Spring Boot에서 사용되는 Bean 등록 방법을 간단히 정리한 글입니다.

 

1.  @Component 계열 어노테이션 사용

@Service  // 또는 @Component, @Repository, @Controller 등
public class MyServiceImpl implements MyService {
    public void doSomething() {
        System.out.println("서비스 로직 실행");
    }
}
  • 장점
    • 간단하고 직관적입니다.
    • 역할 구분으로 가독성이 좋습니다.
    • 스프링 부트의 자동 구성(@ComponentScan) 덕분에 빠르게 적용 가능합니다.
  • 단점
    • 스캔 범위 밖이면 등록되지 않습니다.
    • 등록 조건, 순서, 제어 등의 유연성이 부족합니다.

 

2.  @Configuration + @Bean

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}
  • 장점
    • 명시적이고 가시성 높습니다.
    • 복잡한 생성자, 의존성 설정, 조건 분기 등 유연하게 처리 가능합니다. (@Profile, @Conditional, @DependsOn, @Order 등)
  • 단점
    • 간단한 클래스도 직접 등록해야합니다.
    • 관리할 설정 클래스가 많아지면 복잡해집니다.

 

3. XML 기반 Bean 등록

<bean id="myService" class="com.example.MyServiceImpl"/>
  • 장점
    • 외부 설정 관리, 배포 시점에 소스 코드 수정 없이 설정만 바꿀 수 있습니다.
  • 단점
    • 문자열 기반이라 오타가 발생해도 컴파일 시점에 잡히기 어렵습니다.
    • 가독성이 낮습니다.