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);
    }

}