Spring Boot에서 사용되는 다양한 Bean 등록 방법들에 대해 설명하고, 각각의 장단점을 비교하세요.
Bean 등록 방법 종류
1. Component Scan 방식 (@Component, @Service, @Repository, @Controller 등)
2. @Bean 기반 Java Config (@Configuration 클래스 내 선언)
3. @Import를 활용한 Configuration 병합
4. @ConfigurationProperties를 활용한 Bean 등록
5. Auto-Configuration (자동 설정 클래스 활용)
예시 :
@Service
public class UserService{
//....
}
Spring Boot가 기본적으로 제공하는 방식이며 가장 많이 쓰이는 방식입니다.
@SpringBootApplication안에 @ComponentScan이 포함되어 있어 자동 탐지합니다.
예시 :
@Configuration
public class AppConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
예시 :
@Configuration
@Import({DatabaseConfig.class, SecurityConfig.class})
public class MainConfig {
//...
}
예시 :
@Component
@ConfigurationProperties(prefix = "storage")
public class StorageProperties {
private String location;
// getter, setter
}
storage:
location: /var/upload
예시 :
spring-boot-starter-web을 추가하면 자동으로 DispatcherServlet, Jackson ObjectMapper, 내장 서버(Tomcat 등) Bean을 자동으로 등록합니다.
implementation 'org.springframework.boot:spring-boot-starter-web'