[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์˜ ์ž๋™ ๊ตฌ์„ฑ์€ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๋Š”๋ฐ ์œ ์šฉํ•˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

๋Œ“๊ธ€