[Spring] ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ auto-configuration์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

    Spring Boot๋Š” ์ž๋™๊ตฌ์„ฑ(Auto-Configuration)๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

    ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ํŠน์ • ๋ชจ๋“ˆ์˜ ์ž๋™ ๊ตฌ์„ฑ์ด ์›์น˜ ์•Š๋Š” ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

    ์ด๋Ÿด๋•Œ๋Š” ํ•ด๋‹น ์ž๋™ ๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. 

     

    @SpringBootApplication ์–ด๋…ธํ…Œ์ด์…˜์˜ Exclude ์†์„ฑ ์‚ฌ์šฉ

    @SpringBootApplication ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ,

    exclude ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ž๋™๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

    @SpringBootApplication(exclude = {SomeAutoConfiguration.class})
    public class MyApplication {
    	public static void main (Stirng[] args) {
        	springApplication.run(MyApplication.class, args);
        }
    }
    
    
    //SomeAutoConfiguration.class ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋Š” ์ž๋™ ๊ตฌ์„ฑ ํด๋ž˜์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. 
    //์ด ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ์ž๋™ ๊ตฌ์„ฑ์ด ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค.

    'Spring.autoconfigure.exclude' ์†์„ฑ ์‚ฌ์šฉ

    'application.properties' ๋˜๋Š” 'application.yml' ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ 

    'spring.autoconfigure.exclude' ์†์„ฑ์„ ์„ค์ •ํ•˜์—ฌ ์ž๋™ ๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค. 

    spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

    -> DataSource ์ž๋™ ๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์žˆ๋‹ค. 

    @EnableAutoConfiguration ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ

    '@EnableAutoConfiguration' ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ž๋™ ๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

    @Configuration
    @EnableAutoConfiguration(exclude = {SomeAutoConfiguration.class})
    public class MyConfiguration {
    	//Configuration ๋‚ด์šฉ
    }
    
    //'SomeAutoConfiguration.class' ๋Š” ๋น„ํ™œ์„ฑํ™”๋ ค๋Š” ์ž๋™ ๊ตฌ์„ฑ ํด๋ž˜์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

     


    ์ฆ‰, Spring Boot์˜ ์ž๋™ ๊ตฌ์„ฑ์€ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๋Š”๋ฐ ์œ ์šฉํ•˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์œ„์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ž๋™ ๊ตฌ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ž‘์„ ๋”์šฑ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋Œ“๊ธ€