Spring Framework/Web on Servlet Stack(72)
-
Functional Endpoints[Serving Resources,Running a Server,Filtering Handler Functions]
Spring Web MVC의 WebMvc.fn에서 제공하는 RouterFunction은 웹 애플리케이션에서 요청을 처리하기 위한 함수형 프로그래밍 모델입니다. 이 모델은 함수형 스타일을 사용하여 HTTP 요청을 처리하는 방식을 제공하며, 여러 유연한 기능들을 포함합니다. 이번 설명에서는 리소스 제공, 서버 실행, 필터 적용 등의 주요 개념을 상세히 다루겠습니다.1. 리소스 제공 (Serving Resources)RouterFunction을 사용하면 정적 리소스를 제공하거나 특정 조건에 맞는 요청을 리소스로 리디렉션할 수 있습니다. 예를 들어, SPA(Single Page Application)에서 리디렉션을 통해 단일 진입점(예: index.html)으로 모든 요청을 처리하는 경우 유용합니다.리소스로 리..
2024.10.13 -
RounterFunction
Spring Web MVC의 RouterFunction은 HTTP 요청을 적절한 HandlerFunction에 라우팅하는 데 사용되는 함수형 프로그래밍 방식의 요소입니다. 이 모델은 애너테이션 기반 방식의 대안으로, 함수형 프로그래밍 스타일을 지원하여 라우팅과 요청 처리를 더 유연하게 할 수 있습니다. WebMvc.fn에서 사용되며, Spring WebFlux의 Reactive Stack과 유사한 구조를 가지고 있습니다.RouterFunction의 개념과 사용법RouterFunction이란?RouterFunction은 HTTP 요청을 적절한 HandlerFunction으로 라우팅하는 함수입니다.@RequestMapping을 사용한 애너테이션 기반 라우팅과 동일한 역할을 하지만, 함수형 스타일로 요청을 라..
2024.10.13 -
HandlerFunction
Spring Web MVC의 Functional Endpoints 모델인 WebMvc.fn에서 HandlerFunction과 ServerRequest, ServerResponse에 대한 자세한 설명을 제공하고, 이 기능이 어떻게 HTTP 요청을 처리하는지에 대한 구체적인 내용을 설명하겠습니다.핵심 개념1. HandlerFunctionHandlerFunction은 HTTP 요청을 처리하는 함수입니다. 이것은 애너테이션 기반의 @RequestMapping 메서드 본체와 동일한 역할을 하며, HTTP 요청을 받아 이를 처리하고 응답을 반환합니다.이 함수는 ServerRequest 객체를 받아 ServerResponse 객체를 반환하는 형태입니다. 즉, 요청을 처리하는 로직을 정의한 함수로, 클라이언트로부터의 ..
2024.10.13 -
Functional Endpoints Overview
Spring Web MVC: Functional EndpointsSpring Web MVC에서는 기존의 @RequestMapping 기반 애너테이션 스타일을 대체할 수 있는 또 다른 방식으로 WebMvc.fn이라는 함수형 프로그래밍 모델을 제공합니다. 이 모델은 함수형 스타일을 사용하여 HTTP 요청을 라우팅하고 처리합니다. WebMvc.fn은 Spring WebFlux의 WebFlux.fn과 매우 유사한 구조를 가지고 있지만, 반응형(Reactive) 모델이 아닌 일반적인 서블릿 기반의 Web MVC와 함께 동작합니다.핵심 개념HandlerFunction:HandlerFunction은 @RequestMapping 메서드 본체에 해당하는 개념입니다. 즉, HTTP 요청을 처리하는 함수입니다. 이 함수는 ..
2024.10.13 -
Annotated Controllers
Spring MVC는 @Controller와 @RestController 컴포넌트가 request mapping, request input, 예외 처리 등을 애노테이션을 통해 표현할 수 있는 애노테이션 기반 프로그래밍 모델을 제공합니다. 애노테이션 컨트롤러는 유연한 메서드 시그니처를 가지며, 베이스 클래스를 확장하거나 특정 인터페이스를 구현할 필요가 없습니다. 다음은 애노테이션으로 정의된 컨트롤러의 예입니다:@Controllerpublic class HelloController { @GetMapping("/hello") public String handle(Model model) { model.addAttribute("message", "Hello World!"); r..
2024.10.09 -
URI Links
이 섹션에서는 URI 작업을 위해 Spring Framework에서 사용할 수 있는 다양한 옵션을 설명합니다.UriComponentsUriComponents는 UriComponentsBuilder를 사용해 URI 템플릿을 바탕으로 동적으로 URI를 생성하는 유틸리티입니다. 주로 RESTful API 호출 시 다양한 경로 변수와 쿼리 파라미터를 동적으로 조합할 때 사용됩니다.예시 코드UriComponents uriComponents = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .encode() .build(); URI uri..
2024.10.09