본문 바로가기

Spring/MVC4

[Spring] 스프링의 예외 처리 방법 스프링의 기본 예외 처리 방법 자바 프로그램은 예외가 발생하면 예외 정보를 남기고 스레드가 종료되는 반면에 스프링은 예외가 발생했을 때 웹 애플리케이션이 종료되지 않고 HTTP 상태 코드가 노출이 됩니다. 스프링 부트는 컨트롤러 이하에서 발생한 예외를 캐치하여 스레드를 종료 시키는 것이 아닌 예외 내용을 디스패처서블릿에서 에러컨트롤러로 다시 요청을 보냄으로써 마치 정상 요청인 것처럼 예외 내용을 처리하도록 동작하게 됩니다. 하지만 최초 요청과 더불어 예외 요청을 위해 컨트롤러를 2번 호출한다는 것은 꽤나 복잡하다고 느껴지며 또 이는 필터나 인터셉터를 2번 호출하는 것과 같은 다른 문제를 야기할 수 있습니다. 이런 중복 호출을 방지하기 위해 필터는 등록할 때 DispatcherType을 설정 할 수 있으며.. 2023. 7. 26.
[Spring] HandlerAdapter 스프링 MVC는 클라이언트로부터 들어오는 HTTP 요청을 처리하고, 응답을 생성하는 등의 작업을 수행하는데, 이를 가능하게 해주는 중요한 컴포넌트 중 하나가 org.springframework.web.servlet.HandlerAdapter입니다. 핸들러어댑터는 스프링 MVC에서 클라이언트의 요청을 처리하는 실제 로직을 구현한 컨트롤러(Controller)를 의미하는 핸들러(Handler)를 실행하고 처리하는 역할을 담당합니다. 핸들러어댑터는 핸들러의 실행을 담당하여, 요청의 처리 결과를 적절한 응답으로 변환하여 클라이언트에게 반환합니다. 특징 핸들러(Handler) 웹 요청을 처리(Handle)하는 객체를 핸들러(Hanlder)라고 부릅니다. 일반적으로 알고 있는 컨트롤러(Controller)가 웹 요.. 2023. 7. 24.
[Spring] Filter & Interceptor 스프링(Spring)은 자바(Java) 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 다양한 기능과 기술을 제공합니다. 그 중에서도 Filter와 Interceptor는 웹 애플리케이션의 요청과 응답을 처리하고 조작하는 기능을 제공하는데, 이 두 가지의 개념과 차이점에 대해 알아보겠습니다. Filter 출처 필터는 스프링에서 제공하는 독자적인 기술이 아닌 자바 서블릿에서 제공하는 기술입니다. DispatcherServlet이 요청을 처리하기 전, 후의 웹 애플리케이션 요청과 응답을 가로채 필터링하는 역할을 합니다. 또한 필터는 웹 애플리케이션 영역(Context) 내에서 동작하므로, 스프링의 영역를 접근하기 어렵기 때문에 웹 애플리케이션 영역 내에서 필요한 자원들을 활용하여 사용되는 것이 특징입니다... 2023. 7. 24.
[Spring] @ModelAttribute & @RequestBody Spring Framework는 웹 요청을 처리하기 위한 몇 가지 어노테이션(Annotation)을 제공합니다. 가장 일반적으로 사용되는 @ModelAttribute 와 @RequestBody 두 어노테이션은 모두 Spring MVC 컨트롤러의 메소드 매개 변수에 요청 데이터를 매핑하는데 사용합니다. 이 글에서는 @ModelAttribute 와 @RequestBody 각각의 어노테이션이 요청 데이터를 어떤 식(흐름)으로 사용이 되는지 살펴보고자 합니다. @ModelAttribute 특징 @ModelAttribute 어노테이션은 메소드 매개 변수 또는 메소드 반환 값을 명시된 모델 속성(Model Attribute)에 바인딩하는데 사용됩니다. 메소드 매개 변수에 사용되는 경우 매개 변수가 명시된 모델 속성.. 2023. 7. 17.