filter
์ค๋ช
dispatcherServlet ํธ์ถ ์ , ์์ฒญ์ ๋ํด์ ์ ์ฒ๋ฆฌ ์์
(์ํ๋ ํํ๋ก ๋ณํ)์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋๊ฒ. (์น ์ดํ๋ฆฌ์ผ์ด์
์์ ๋ฑ๋ก)
filter chain ์ ํตํด ์ฐ์์ ์ผ๋ก ๋์ํ ์ ์๊ฒ ๊ฐ๋ฅ.
์ธ์ฆ, ๊ถํ, CORS, ์ธ์ฝ๋ฉ, XSS ์์
์ ์ด์ฉ
dispatcherServlet
์ค๋ช
ํ๋ฐํธ ์ปจํธ๋กค๋ฌ์ ์ฐ๋๋๋ ์ง์ ์ ์ญํ ์ ํ๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ์ฒ๋ฆฌ ํ๋ฆ์ ์ ์ดํ๋ ์ฌ๋ นํ ์ญํ ์ ํ๋ค.
โฟ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ?
ํด๋ผ์ด์ธํธ ์์ฒญ์ ํ๋ฐํธ ์ปจํธ๋กค๋ฌ๋ผ๋ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ ์์ฒญ ๋ด์ฉ์ ๋ฐ๋ผ ์ํํ๋ ํธ๋ค๋ฌ(Handler)๋ฅผ ์ ํํ๋ ์ํคํ ์ฒ
dispatcherServlet๊ณผ ์ฐ๋๋๋ ์ธํฐํ์ด์ค
์ธํฐํ์ด์ค๋ช | ์ญํ |
HandlerExceptionResolver | ์์ธ์ฒ๋ฆฌ ์ธํฐํ์ด์ค. |
LocaleResolver LocaleContextResolver |
ํด๋ผ์ด์ธํธ Locale ์ ๋ณด๋ฅผ ํ์ธํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. |
ThemeResolver | ์คํ๋ง ํ ๋ง๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. |
FlashMapManager | FlashMap์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. |
RequestToViewNameTranslator | ํธ๋ค๋ฌ๊ฐ ๋ทฐ ์ด๋ฆ๊ณผ ๋ทฐ๋ฅผ ๋ฐํํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ฉ๋๋ ๋ทฐ ์ด๋ฆ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ์คํ๋ง MVC์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๊ตฌํ ํด๋์ค๊ฐ ์ ์ฉ๋์ด ์๋ค. |
HandlerInterceptor | ํธ๋ค๋ฌ ์คํ ์ ํ์ ํ๋ ๊ณตํต ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ์ด ์ธํฐํ์ด์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๊ฐ ๊ตฌํํ๊ณ ์คํ๋ง MVC์ ๋ฑ๋กํ์ฌ ์ฌ์ฉํ ์ ์๋ค. |
MultipartResolver | ๋ฉํฐํํธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ์คํ๋ง MVC์์ ๋ช ๊ฐ์ง ๊ตฌํ ํด๋์ค๊ฐ ์ ๊ณต๋๊ณ ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋์ง ์๋๋ค. |
Handler
์ค๋ช
ํ๋ ์์ํฌ ๊ด์ ์์ ๋ถ๋ฆฌ๋ Handler๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ ํด๋์ค์ ๊ด์ ์์ Controller ์ด๋ค.
HandlerMapping
์ค๋ช
์์ฒญ์ ๋์ํ ํธ๋ค๋ฌ๋ฅผ ์ ํํ๋ ์ญํ ์ ์ํํ๋ค. (์ปจํธ๋กค๋ฌ๋ด์ ๋ฉ์๋๊ฐ ํธ๋ค๋ฌ๋ก ์ธ์!)
ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์์ ์์ฒญ์ด ์ฌ ๊ฒฝ์ฐ RequestMappingHandlerMapping ํด๋์ค๋
์์ฒญ ๋ด์ฉ(์์ฒญ ๊ฒฝ๋ก ํน์ HTTP ๋ฉ์๋)๊ณผ ์์ฒญ ๋งคํ ์ ๋ณด๋ฅผ ๋งค์นญํด์ ์คํํ ํธ๋ค๋ฌ๋ฅด ์ ํํ๋ค!
@Controller
class TestController {
@RequestMapping("/hello")
public String hello() {
return "/hi";
}
// hello ๋ฉ์๋๊ฐ ํธ๋ค๋ฌ!
}
HandlerAdapter
์ค๋ช
ํธ๋ค๋ฌ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์ญํ ์ ํ๋ค. (RequestMappingHandlerAdapter)
RequestMappingHandlerAdapter ํด๋์ค ์์๋ ํธ๋ค๋ฌ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๊ณ ๋ฉ์๋์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ๊ฐ์ผ๋ก ๋๋๋ ค ๋ณด๋
๋น ๊ฐ์ฒด ๊ฒ์ฌ ๋ฑ๋ฑ์ ํจ.
ViewResolver
์ค๋ช
ํธ๋ค๋ฌ์์ ๋ฐํํ ๋ทฐ ์ด๋ฆ์ ๋ณด๊ณ , ์ดํ์ ์ฌ์ฉํ View ์ธํฐํ์ด์ค์ ๊ตฌํ ํด๋์ค๋ฅผ ์ ํํ๋ ์ญํ ์ ํ๋ค.
์ฐธ๊ณ
(์ฑ
) ์คํ๋ง ์ฒ ์ ์
๋ฌธ
(์ฑ
) ์คํ๋ง ๋ถํธ๋ก ๋ฐฐ์ฐ๋ ์๋ฐ ์น ๊ฐ๋ฐ
https://exhibitlove.tistory.com/7
https://stargatex.wordpress.com/2015/12/08/spring-mvc-request-lifecycle/
'๊ฐ๋ฐ > spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[WebSocket] ์น์์ผ (0) | 2022.03.29 |
---|---|
ํธ๋์ญ์ (0) | 2021.11.25 |
Spring - DI (Dependency Injection) (0) | 2021.06.01 |
Spring - AOP(Aspect-Oriented Programming) (0) | 2021.05.25 |
IOC/DI, DI์์ฉ (0) | 2017.11.20 |