๐Ÿ–ฅBeanFactory์™€ ApplicationContext๐Ÿง‘๐Ÿปโ€๐Ÿ’ป โ—๏ธ

DEVJUNยท2021๋…„ 12์›” 21์ผ
0
post-thumbnail
post-custom-banner

BeanFactory

  • ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ์ตœ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.
  • ์Šคํ”„๋ง ๋นˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐํšŒ(getBean())ํ•˜๋Š” ์—ญํ•  ๋‹ด๋‹น

ApplicationContext

  • BeanFactory ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ƒ์†๋ฐ›์•„ ์ œ๊ณตํ•œ๋‹ค.

ApplicationContext๋Š” BeanFactory๋ฅผ ์ƒ์†๋ฐ›๋Š”๋ฐ ์ด์™ธ์— ์ˆ˜ ๋งŽ์€ ๋ถ€๊ฐ€๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.


๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

๋ฉ”์‹œ์ง€์†Œ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ตญ์ œํ™” ๊ธฐ๋Šฅ

  • ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ•œ๊ตญ์—์„œ ๋“ค์–ด์˜ค๋ฉด ํ•œ๊ตญ์–ด๋กœ, ์˜์–ด๊ถŒ์—์„œ ๋“ค์–ด์˜ค๋ฉด ์˜์–ด๋กœ ์ถœ๋ ฅ

ํ™˜๊ฒฝ๋ณ€์ˆ˜

  • ๋กœ์ปฌ, ๊ฐœ๋ฐœ, ์šด์˜๋“ฑ์„ ๊ตฌ๋ถ„ํ•ด์„œ ์ฒ˜๋ฆฌ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฒคํŠธ

  • ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰ํ•˜๊ณ  ๊ตฌ๋…ํ•˜๋Š” ๋ชจ๋ธ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ง€์›

ํŽธ๋ฆฌํ•œ ๋ฆฌ์†Œ์Šค ์กฐํšŒ

  • ํŒŒ์ผ, ํด๋ž˜์ŠคํŒจ์Šค, ์™ธ๋ถ€ ๋“ฑ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์กฐํšŒ


์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ์„ค์ • ์ •๋ณด๋ฅผ ๋ฐ›์•„๋“œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€๋Š” AnnotationConfigApplicationContext ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋ฐ” ์ฝ”๋“œ๋กœ๋œ ์ •๋ณด๋ฅผ ๋„˜๊ฒผ๋‹ค.

์ด์™ธ์—๋„ GenericXmlApplicationContext ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ xml์„ค์ • ํŒŒ์ผ์„ ๋„˜๊ธธ์ˆ˜๋„ ์žˆ๋‹ค.

๐Ÿ‘‰๐Ÿป๊ทธ๋Ÿฌ๋‚˜ ์ตœ๊ทผ์—๋Š” xml๊ธฐ๋ฐ˜์˜ ์„ค์ •์€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•œ๋‹ค.โœ๐Ÿป


๐Ÿง‘๐Ÿปโ€๐Ÿ’ป์Šคํ”„๋ง ๋นˆ ์„ค์ • ๋ฉ”ํƒ€ ์ •๋ณด - BeanDefinition


์Šคํ”„๋ง์€ BeanDefinition์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์œ„์—์„œ ์ด์•ผ๊ธฐํ•œ ๋‹ค์–‘ํ•œ ์„ค์ • ํ˜•์‹์„ ์ง€์›ํ•œ๋‹ค.

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๋ฐ” ์ฝ”๋“œ์ธ์ง€, XML์ธ์ง€ ๋ชฐ๋ผ๋„ ๋˜๊ณ , BeanDefinition๋งŒ์„ ์•Œ๋ฉด ๋œ๋‹ค.

@Bean(์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ๋นˆ ๋“ฑ๋ก) < bean > (XML๊ธฐ๋ฐ˜ ๋นˆ ๋“ฑ๋ก) ๋‹น ํ•˜๋‚˜์”ฉ ๋ฉ”ํƒ€ ์ •๋ณด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ”„๋ง ๋นˆ์„ ์ƒ์„ฑํ•œ๋‹ค.

์ข€ ๋” ์ฝ”๋“œ ๋ ˆ๋ฒจ๋กœ ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€๋ณด๋ฉด ๋ฐ‘์— ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๊ตฌ์กฐ์ด๋‹ค!


AnnotationConfigApplication์€ AnnotationBeanDefinitionReader๋ฅผ ์‚ฌ์šฉํ•ด์„œ Appconfig.class๋ฅผ ์ฝ๊ณ  BeanDefinition์„ ์ƒ์„ฑํ•œ๋‹ค.

๐Ÿ“์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ ํ•ต์‹ฌ์€ ์Šคํ”„๋ง์ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์„ค์ • ์ •๋ณด๋ฅผ BeanDefinition์œผ๋กœ ์ถ”์ƒํ™”ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ผ๋Š” ์ ์ด๋‹คโ—๏ธโ—๏ธ

์ถœ์ฒ˜

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

profile
๐Ÿง‘๐Ÿปโ€๐Ÿ’ปiOS
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€