Intro::
@Configuration(proxyBeanMethods = false) ์ ๋ํ ์ ๋ฆฌ๋ณธ์ ๋๋ค.
ย
๊ธฐ๋ณธ์ ์ธ @Configuration
๋์ ๋ฐฉ์
Spring์
@Configuration
ํด๋์ค๋ฅผ ์ฒ๋ฆฌํ ๋, ํ๋ก์(proxy) ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํด๋์ค์ ๋ฉ์๋ ํธ์ถ์ ๊ฐ๋ก์ฑ๊ณ ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ ์คํ๋ง์ ๋น ๋ฑ๋ก ๊ณผ์ ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.@Configuration public class AppConfig { @Bean public MyService myService() { return new MyService(); } @Bean public MyRepository myRepository() { return new MyRepository(); } }
AppConfig
ํด๋์ค๋ ์คํ๋ง์ ์ํด ํ๋ก์๋ก ๋ํ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด myService()
์ myRepository()
๋ฉ์๋ ํธ์ถ์ด ํ๋ก์๋ฅผ ํตํด ์ฒ๋ฆฌ๋๋ฉฐ, ๋์ผํ ๋น ์ธ์คํด์ค๊ฐ ๋ฐํ๋ฉ๋๋ค.proxyBeanMethods
์ค์ ์ต์
proxyBeanMethods
์ค์ ์ต์
์ ์ด๋ฌํ ํ๋ก์ ๋์์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.proxyBeanMethods = true
(๊ธฐ๋ณธ๊ฐ)
- ํ๋ก์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ
@Bean
๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
- ๋ฉ์๋ ํธ์ถ์ ๊ฐ๋ก์ฑ๊ณ ๋์ผํ ๋น ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ด๋
@Bean
๋ฉ์๋ ๊ฐ์ ์์กด์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
proxyBeanMethods = false
- ํ๋ก์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
@Bean
๋ฉ์๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์๋ก์ด ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ด๋ ๋ฉ์๋ ํธ์ถ์ ๊ฐ๋ก์ฑ์ง ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ์ต์ ํ์ ๋์์ด ๋ฉ๋๋ค.
proxyBeanMethods = false
์ฌ์ฉ ์์
proxyBeanMethods = false
์ค์ ์ ํ๋ก์ ๋ฉ์๋ ํธ์ถ์ด ํ์ํ์ง ์๊ฑฐ๋, @Bean
๋ฉ์๋ ๊ฐ์ ์์กด์ฑ์ด ์์ ๋ ์ฌ์ฉ๋ฉ๋๋ค.@Configuration(proxyBeanMethods = false) public class AppConfig { @Bean public MyService myService() { return new MyService(); } @Bean public MyRepository myRepository() { return new MyRepository(); } }
์ด ์ค์ ์์๋
myService()
์ myRepository()
๋ฉ์๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์๋ก์ด ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ฉฐ, ํ๋ก์๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์ฑ๋ฅ ํฅ์์ด ์์ ์ ์์ต๋๋ค.์ฃผ์์ฌํญ
proxyBeanMethods = false
๋ฅผ ์ฌ์ฉํ๋ฉด@Bean
๋ฉ์๋ ๊ฐ์ ํธ์ถ์ด ํ๋ก์๋ก ์ฒ๋ฆฌ๋์ง ์๊ธฐ ๋๋ฌธ์, ๋น ๊ฐ์ ์์กด์ฑ์ด ์๋ ๊ฒฝ์ฐ ์ฃผ์ํด์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํ
@Bean
๋ฉ์๋๊ฐ ๋ค๋ฅธ@Bean
๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํด๋น ๋น์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ,proxyBeanMethods = false
์ค์ ์ ํญ์ ์๋ก์ด ์ธ์คํด์ค๊ฐ ์์ฑ๋ฉ๋๋ค.
๊ฒฐ๋ก
proxyBeanMethods = true
(๊ธฐ๋ณธ๊ฐ): ์คํ๋ง์ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ@Bean
๋ฉ์๋ ํธ์ถ์ ๊ฐ๋ก์ฑ๊ณ ๋์ผํ ๋น ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๋ ๋น ๊ฐ์ ์์กด์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
proxyBeanMethods = false
: ํ๋ก์๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ๋ฉ์๋ ํธ์ถ ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๋ ํ๋ก์ ์ค๋ฒํค๋๋ฅผ ์ค์ฌ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋๋ชจํ ์ ์์ง๋ง, ๋น ๊ฐ์ ์์กด์ฑ์ด ์๋ ๊ฒฝ์ฐ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
proxyBeanMethods = false
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํน์ ์ํฉ์์ ์ ์ฉํ ์ ์์ง๋ง, ๋น ๊ฐ์ ์์กด์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ ์์ ํฉ๋๋ค.ย
Loading Comments...