JDK-Dynamic-Proxy

  • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Ÿฐํƒ€์ž„์— ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” Java ๊ธฐ์ˆ 

  • java.lang.reflect ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ Proxy ๊ฐ์ฒด

    • ์ฆ‰ ๋ฆฌํ”Œ๋ž™์…˜์ด Proxy๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ฒƒ.

  • JDK ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, @Autowired ๋ฅผ ํ†ตํ•ด ์ฃผ์ž…ํ•˜๋Š” ๊ฐ์ฒด๋Š” ๊ตฌํ˜„์ฒด๊ฐ€ ์•„๋‹Œ, ์ธํ„ฐํŽ˜์ด์Šค์—ฌ์•ผ ๋จ.

    • ์™œ? ํ”„๋ก์‹œ ๊ฐ์ฒด๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๋ คํ•˜๋ฉด ์ฐพ์„ ์ˆ˜ ์—†์„๋“ฏ.

  • @EnableAsync ์ธํ„ฐํŽ˜์ด์Šค์—์„œ, AdviceMode mode() ๋ฅผ ๋ณด๋ฉด default๊ฐ€ AdviceMode.PROXY ์ž„

    • ์„ค๋ช…์„ ๋ณด๋ฉด, JDK proxy-based advice ์•„๋งˆ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ JDK Dynamic proxy๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋œป์ผ๋“ฏ.


์ •๋ฆฌ

image
  • Bean ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์œผ๋ฉด.. -> [[JDK-dynamic-proxy]]

  • Bean์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด.. [[CGLib]]

์ฐธ๊ณ 

Last updated

Was this helpful?