๐Ÿ“˜ Programming/Spring

[Spring Framework] 3. DI์™€ ์Šคํ”„๋ง ๋นˆ(Bean), ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ(Container)์˜ ๊ด€๊ณ„ (2)

ํ•œ์ฝ”๋”ฉ 2021. 8. 7. 22:15
728x90
728x90

ํ•™์Šต ๋ชฉํ‘œ

1. '์˜์กด์„ฑ ์ฃผ์ž…' ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด
2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ApplicationContext ์ดํ•ด
3-1. XML ํŒŒ์ผ์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ•
3-2. Annotation์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ•
3-3. Java๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ•
4. Bean ๊ฐ์ฒด์˜ Scope์™€ LifeCycle ์ดํ•ด

ApplicationContext ์™€ Bean

์Šคํ”„๋ง ๋นˆ (Spring Bean)๊ณผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ

์Šคํ”„๋ง ๋นˆ

  • ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด

IoC ์ปจํ…Œ์ด๋„ˆ

  • ์Šคํ”„๋ง ๋นˆ์˜ ์ƒ์„ฑ, ๊ด€๊ณ„, ์กฐ๋ฆฝ, ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌ
  • DI์„ ์ด์šฉํ•ด ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ

  1. BeanFactory
    • DI ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ œ๊ณต → Bean์˜ ์ƒ์„ฑ, ์˜์กด ๊ด€๊ณ„ ๊ด€๋ฆฌ
    • Bean์ด ๋งŽ์ง€ ์•Š๊ณ  ๊ฒฝ๋Ÿ‰ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ž‘์—… ์‹œ ํ™œ์šฉ
    • XML ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์„ค์ • ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค
      • org.springframework.beans.factory.xml.XmlBeanFactory
  2. ApplicationContext
    • ์ผ๋ฐ˜ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์˜๋ฏธ
    • BeanFactory ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ธฐ๋Šฅ ํ™•์žฅ
      • Internationalization, AOP, Transaction Management
  3. WebApplicationContext (WAC)
  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์šฉ ApplicationContext
  • WAC ์ข…๋ฅ˜ 2๊ฐ€์ง€
    1. ContextLoaderListener์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” WAC
      • DAO, Service ๊ด€๋ จ ์Šคํ”„๋ง Bean ๋“ฑ๋ก
      • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  WAC ๊ฐ์ฒด ์ƒ์„ฑ
      • root-context.xml ํŒŒ์ผ์— ์„ค์ •
    2. DispatcherServlet์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” WAC
      • ์ปจํŠธ๋กค๋Ÿฌ์™€ ๊ฐ™์€ ์„œ๋ธ”๋ฆฟ ๊ด€๋ จ Bean ๋“ฑ๋ก
      • ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ ๋งˆ๋‹ค ์‚ฌ์šฉํ•  WAC ๊ฐ์ฒด ์ƒ์„ฑ
      • servlet-context.xml ํŒŒ์ผ์— ์„ค์ •

 

 

728x90
๋ฐ˜์‘ํ˜•