SpringFramework 03. Spring Web MVC - swkim0128/PARA GitHub Wiki
-
Model
์ดํ๋ฆฌ์ผ์ด์ ์ํ์ ์บก์ํ
์ํ ์ฟผ๋ฆฌ์ ๋ํ ์๋ต
์ดํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ ํํ
๋ณ๊ฒฝ์ view์ ํต์ง
-
View
๋ชจ๋ธ์ ํ๋ฉด์ ์์์ ์ผ๋ก ํํ
๋ชจ๋ธ์๊ฒ ์ ๋ฐ์ดํธ ์์ฒญ
์ฌ์ฉ์์ ์ ๋ ฅ์ ์ปจํธ๋กค๋ฌ์ ์ ๋ฌ
์ปจํธ๋กค๋ฌ๊ฐ view๋ฅผ ์ ํํ๋๋ก ํ์ฉ
-
Controller
์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ ์ ์
์ฌ์ฉ์ ์ก์ ์ ๋ชจ๋ธ ์ ๋ฐ์ดํธ์ mapping
์๋ต์ ๋ํ view ์ ํ
์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ ์ํด Model, View, Controller ์ธ๊ฐ์ง ์์ญ์ผ๋ก ๋ถ๋ฆฌ
์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ์์ญ ์ปดํฌ๋ํธ์ ์ํฅ์ ๋ฏธ์น์ง ์์(์ ์ง๋ณด์ ์ฉ์ด)
์ปดํฌ๋ํธ ๊ฐ์ ๊ฒฐํฉ์ฑ์ด ๋ฎ์ ํ๋ก๊ทธ๋จ ์์ ์ด ์ฉ์ด(ํ์ฅ์ฑ์ด ๋ฐ์ด๋จ)
-
์ฅ์
ํ๋ฉด๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํด์ ์์ ๊ฐ๋ฅ
์์ญ๋ณ ๊ฐ๋ฐ๋ก ์ธํ์ฌ ํ์ฅ์ฑ์ด ๋ฐ์ด๋จ
ํ์คํ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๊ณต๋์์ ์ด ์ฉ์ดํ๊ณ ์ ์ง๋ณด์์ฑ์ด ์ข์
-
๋จ์
๊ฐ๋ฐ๊ณผ์ ์ด ๋ณต์กํด ์ด๊ธฐ ๊ฐ๋ฐ ์๋๊ฐ ๋ฆ์
์ด๋ณด์๊ฐ ์ดํดํ๊ณ ๊ฐ๋ฐํ๊ธฐ์ ๋ค์ ์ด๋ ค์
-
ํน์ง
Spring์ DI๋ AOP๊ฐ์ ๊ธฐ๋ฅ ๋ฟ๋ง ์๋๋ผ, Servlet ๊ธฐ๋ฐ์ WEB ๊ฐ๋ฐ์ ์ํ MVC Framework๋ฅผ ์ ๊ณต
Spring MVC๋ Model2 Architecture์ Front Controller Pattern์ Framework์ฐจ์์์ ์ ๊ณต
Spring MVC Framework๋ Spring์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๊ธฐ ๋๋ฌธ์ Spring์ด ์ ๊ณตํ๋ Transaction ์ฒ๋ฆฌ๋ DI ๋ฐ AOP ๋ฑ์ ์์ฝ๊ฒ ์ฌ์ฉ
-
Spring MVC ๊ตฌ์ฑ์์
-
Spring MVC๋ฅผ ์ด์ฉํ Application ๊ตฌํ Step
web.xml์ DispatcherServlet ๋ฑ๋ก ๋ฐ Spring ์ค์ ํ์ผ ๋ฑ๋ก
์ค์ ํ์ผ์ HandlerMapping ์ค์
Controller ๊ตฌํ ๋ฐ Context ์ค์ ํ์ผ(servlet-context.xml)์ ๋ฑ๋ก
Controller์ JSP์ ์ฐ๊ฒฐ์ ์ํด View Resolver ์ค์
JSP ์ฝ๋ ์์ฑ
-
Controller ์์ฑ
์ข์ ๋์์ธ์ Controller๊ฐ ๋ง์ ์ผ์ ํ์ง ์๊ณ Service์ ์ฒ๋ฆฌ๋ฅผ ์์
-
web.xml - DispatcherServlet ์ค์
-
web.xml - ์ต์์ Root ContextLoader ์ค์
-
Application Context ๋ถ๋ฆฌ
์คํ ์์
-
์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ฉด Tomcat(WAS)์ ์ํด web.xml์ด ๋ก๋ฉ
-
web.xml์ ๋ฑ๋ก๋์ด ์๋ ContextLoaderListener(Java Class)๊ฐ ์์ฑ. ContextLoaderListener class๋ ServletContextListener interface๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฉฐ, ApplicationContext๋ฅผ ์์ฑํ๋ ์ญํ ์ ์ํ
-
์์ฑ๋ ContextLoaderListener๋ root-context.xml์ loading
-
root-context.xml์ ๋ฑ๋ก๋์ด ์๋ Spring Container๊ฐ ๊ตฌ๋.. ์ด ๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ Business Logic(Service)์ ๋ํ ๋ถ๋ถ๊ณผ Database Logic(DAO), VO ๊ฐ์ฒด๋ค์ด ์์ฑ
-
Client๋ก ๋ถํฐ ์์ฒญ(reqeust)๊ฐ ๋ค์ด์ด
-
DispatcherServlet(Servlet)์ด ์์ฑ. DispatcherServlet์ FrontController์ ์ญํ ์ ์ํ
Client๋ก๋ถํฐ ์์ฒญ ์จ ๋ฉ์์ง๋ฅผ ๋ถ์ํ์ฌ ์๋ง์ PageController์๊ฒ ์ ๋ฌํ๊ณ ์๋ต์ ๋ฐ์ ์์ฒญ์ ๋ฐ๋ฅธ ์๋ต์ ์ด๋ป๊ฒ ํ ์ง ๊ฒฐ์ . ์ค์ง์ ์ธ ์์ ์ PageController์์ ์ด๋ฃจ์ด ์ง๋ค.
์ด๋ฌํ ํด๋์ค๋ค์ HandlerMapping, ViewResolver Class๋ผ๊ณ ํจ. -
DispatcherServlet์ servlet-context.xml์ loading
-
๋ ๋ฒ์งธ Spring Container๊ฐ ๊ตฌ๋๋๋ฉฐ ์๋ต์ ๋ง๋ PageController๋ค์ด ๋์, ์ด ๋ ์ฒซ ๋ฒ์งธ Spring Container๊ฐ ๊ตฌ๋๋๋ฉด์ ์์ฑ๋ DAO, VO, Service ํด๋์ค๋ค๊ณผ ํ์ ํ์ฌ ์๋ง์ ์์ ์ ์ฒ๋ฆฌ