boot @AutoConfiguration - slahsk/study GitHub Wiki
ComponentScan
spring νμΌμμ @Configuration μ μ€μ νμΌμ΄λΌλκ²μ μλ €μ€λ€.
Spring Boot μμ bean λ±λ‘ν λ μ¬μ© λλ€.
λν @Configuration μ€μ ν μλ°νμΌλ bean λ±λ‘ λλ€.
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@ComponentScan μ λ±λ‘νλ©΄ μ€νλ§μμ μλμΌλ‘ @Configuration μ°Ύμμ bean μ λ±λ‘ μμΌμ€λ€.
νμ§λ§ @ComponentScan μ¬μ© μνλ€λ©΄ @Import μ΄μ©νμ¬ κ°κ° λ±λ‘μ ν΄μ€μΌ νλ€.
java κ° μλ xml μ€μ νμΌμ λ±λ‘ νκ³ μΆμλλ @ImportResource μ΄μ©νμ¬ λ±λ‘μ ν΄μ€μΌ νλ€.
Auto-configuration
@EnableAutoConfiguration λ₯Ό λ±λ‘ν¨μΌλ‘μ Spring μμ κΈ°λ³Έμ μΌλ‘ μ¬μ©νλ jar λ€μ μΆκ° ν΄μ€λ€
λ§μ½ μλμΌλ‘ λ±λ‘λλ μ€μ νμΌμ€μ μ μΈ μν€κ³ μΆλ€λ©΄
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
μ΄λ¬ν μμΌλ‘ λ°λ‘ λ±λ‘μ ν΄μ€μΌ νλ€.
@SpringBootApplication
@SpringBootApplication λ₯Όμ΄μ©νλ€λ©΄ μμμ μ΄μ©νλ
@Configuration
@EnableAutoConfiguration
@ComponentScan
3κ°λ₯Ό κΈ°λ³Έμ μΌλ‘ ν¬ν¨νκ³ μλ€.
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}