๐Spring Framework์ ์ ์ฒด ์คํ ์์
Request โฉ DispatcherServlet (web.xml) โฉ HandlerMapping (servlet-context.xml)
โฉ Controller [Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller]
โฉ DispatcherServlet โฉ ViewResolver โฉ View โฉ DispatcherServlet โฉ Response
์ผ๋ฐ์ ์ธ ๊ธฐ๋ณธ ๋์ ์์๐งโ๏ธ
์ ์์์์ Controller ๋ท๋ถ๋ถ์ ๊ณผ์ ์ ์๋ตํจ๐งโ๏ธ
๐งโ๏ธ์คํ ์์
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋.
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ DispatcherServlet์ด ๊ฐ๋ก์ฑ. web.xml์ ์ ๋ฑ๋ก๋ ๋ด์ฉ๋ง ๊ฐ๋ก์ฑ(๋ชจ๋ ์์ฒญ์ ๊ฐ๋ก์ฑ๋ ๊ฒ์ ์๋)
- DispatcherServlet์ด ๊ฐ๋ก์ฑ ์์ฒญ์ HandlerMapping์ผ๋ก ๋ณด๋ด ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ Controller๋ฅผ ์ฐพ์.
- ์ค์ ์์ฒญ ์ฒ๋ฆฌ : Controller ⇒ Service ⇒ DAO ⇒ DB ⇒ DAO ⇒ Service ⇒ Controller
- ViewResolver๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ View ํ๋ฉด์ ์ฐพ์.
- ์ฐพ์ view ํ๋ฉด์ View์ ๋ณด๋ด๋ฉด ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ค์ DispatcherServlet์ ๋ณด๋ด๋ฉด, DispatcherServlet๋ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ์กํจ.
๐Spring framework์ ๊ฐ ๊ตฌ์ฑ์์
ServletContainer
- Client(์น๋ธ๋ผ์ฐ์ )๋ก๋ถํฐ HTTP์์ฒญ์ ๋ฐ์ ์๋ธ๋ฆฟ ๋ก์ง์ ์ฒ๋ฆฌํ ์ ์๋ ๊ตฌ์ฑ์์.
- ์๋ธ๋ฆฟ์ด๋ javax.servlet ํจํค์ง์ ์ ์๋ ์ธํฐํ์ด์ค๋ก, ์๋ฐ class ํ์ผ๋ก ๋ ์๋ฒ๋ก์ง์ด๋ผ๊ณ ๋ณผ ์ ์์.
- ๋ํ์ ์ธ ์๋ก๋ Tomcat
Spring
- Spring framework ์์ญ์.
DispatcherServlet
- Spring framework์์ front controller์ญํ .
- ์ค์ ๋์ํ๊ธฐ ์ํ ๋ก์ง์์ฒญ์ ๋ํด ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ค.
- dispatch์ ๋ป์ ๋ณด๋ด๋ค๋ผ๋ ๋ป์ผ๋ก, ์ด๊ณณ์ ์์ฒญ์ด ์ค๋ฉด ์ค์ ๋ก ๋ก์ง์ ์ํํ ์ปดํฌ๋ํธ๋ก ์์ฒญ์ ๋ณด๋ด์ฃผ๋ ์ญํ ์ ํ๊ณ , ๋ฐํ์ ๋ฐ๋ ์ญํ .
HandlerMapping
- Spring framework์ ์์ฑ๋ ์ฌ๋ฌ Controller์ค์์ ๋ก์ง์ ์ํํ contoller๋ฅผ ํ์ธํด์ฃผ๋ ์ปดํฌ๋ํธ.
Controller
- ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ๋ฐํ๋ ์ปดํฌ๋ํธ๋ก, http request๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌํ ์ ์๋๋ก ๊ฐ๋ฐํ๋ ์ปดํฌ๋ํธ.
Service
- ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ๋ฐํ๋ ์ปดํฌ๋ํธ๋ก, ๋น์ง๋์ค ๋ก์ง์ ์ํํ๋ ์ปดํฌ๋ํธ.
DAO (Data Access Object)
- ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ๋ฐํ๋ ์ปดํฌ๋ํธ๋ก, Database์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฐ์ฒด.
๋ณดํต mybatis์ ๊ฐ์ persistence framework๋ฅผ ๋ง์ด ํ์ฉ.
ViewResolver
- ViewName์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค View ํ์ผ์ ์ฌ์ฉํ ๊ฒ์ธ์ง ํ์ธํด์ฃผ๋ ์ปดํฌ๋ํธ.
View
- ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ๋ฐํ๋ ์ปดํฌ๋ํธ๋ก, ๋ณดํต UIํ๋ฉด์ ์๋ฏธ.
์ฐธ์กฐ
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring]DataSource / JNDI / Connection Pool (0) | 2022.10.26 |
---|---|
[Spring]Interceptor (1) | 2022.10.25 |
[Spring]Logging (1) | 2022.10.07 |
[Spring]AJAX์๋ต (0) | 2022.10.04 |
[Spring]Exception์ฒ๋ฆฌ (0) | 2022.10.04 |