Spring/Spirng MVC - 기본기능

Spring/Spirng MVC - 기본기능

스프링 - 요청 Mapping Handler Adapter 구조

요청 매핑 헨들러 어뎁터 구조(Request Mapping Handler Adapter) HTTP 메시지 컨버터는 스프링 MVC 어디쯤에서 사용되는 것일까? SpirngMVC 구조 모든 비밀은 애노테이션 기반의 컨트롤러, @RequestMapping 을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter (요청 매핑 헨들러 어뎁터)에 있다. RequestMappingHandlerAdapter 동작방식 ArgumentResolver Spring MVC에서 ArgumentResolver는 컨트롤러 메서드에서 사용하는 매개변수들을 런타임 시점에 처리하는 기능이다. ArgumentResolver는 컨트롤러 메서드의 매개변수를 분석하고, 그 매개변수에 값을 바인딩할 수 있는 객체를 제공한..

Spring/Spirng MVC - 기본기능

스프링 - HTTP API, 메시지 바디에 직접 입력

HTTP 응답 - HTTP API, 메시지 바디에 직접 입력(정리) HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 참고 💡 HTML이나 뷰 템플릿을 사용해도 HTTP 응답 메시지 바디에 HTML 데이터가 담겨서 전달된다. 여기서 설명하는 내용은 정적 리소스나 뷰 템플릿을 거치지 않고, 직접 HTTP 응답 메시지를 전달하는 경우를 말한다. @Slf4j @Controller //@RestController public class ResponseBodyController { @GetMapping("/response-body-string-v1") public void responseBodyV1(HttpServ..

Spring/Spirng MVC - 기본기능

스프링 - HTTP 응답 - 정적 리소스, 뷰 템플릿

HTTP 응답 - 정적 리소스, 뷰 템플릿 (정리) 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다. 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 정적 리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static , /public , /resources , /META-INF/resources src/main/resources 는 리소스를 보관하는 곳이고, 또 classPass의 시작 경로이다. 따라서 다..

Spring/Spirng MVC - 기본기능

스프링 - HTTP 요청 메시지 - JSON형식 조회

과거 서블릿에서 현재까지 사용하는 HTTP API에서 사용하는 JSON형식 조회 requestBodyJsonV1 @Slf4j @Controller public class RequestBodyJsonController { private ObjectMapper objectMapper = new ObjectMapper(); @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messag..

Spring/Spirng MVC - 기본기능

스프링 - HTTP 요청 메시지 - 단순 텍스트

HTTP 요청 메시지 - 단순 텍스트 HTTP API에서는 주로 HTTP message body에 데이터를 직접 담아 요청한다. 이때 데이터 형식으로는 JSON, XML, TEXT 등이 사용되며, 특히 JSON 형식이 가장 일반적으로 사용된다. 이 방식은 주로 POST, PUT, PATCH 등의 HTTP 메서드에서 사용된다. 요청 파라미터와는 달리 HTTP 메시지 바디를 통해 데이터가 직접 전달되는 경우에는 @RequestParam, @ModelAttribute와 같은 어노테이션을 사용할 수 없습니다. (다만 HTML Form 형식으로 전달되는 경우는 요청 파라미터로 인정된다.) 가장 간단한 형태로 HTTP message body에 텍스트 메시지를 담아 보내고, 이를 읽어 보려면 InputStream을 ..

Spring/Spirng MVC - 기본기능

스프링 - HTTP 요청 파라미터 - @ModelAttribute

HTTP 요청 파라미터 - @ModelAttribute 실제 개발을 하면 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주어야 한다 @RequestParam String username; @RequestParam int age; HelloData data = new HelloData(); data.setUsername(username); data.setAge(age); 스프링은 이 과정을 완전히 자동화해주는 @ModelAttribute 기능을 제공한다. import lombok.Data; @Data public class HelloData { private String username; private int age; } 롬복 @Date 👇 더보기 롬복(Lombok)은 자바(Java) 프..

Spring/Spirng MVC - 기본기능

스프링 - HTTP 요청 파라미터 - @RequestParam

@RequestParam 스프링이 제공하는 @RequestParam 을 사용하면 요청 파라미터를 매우 편리하게 사용할 수 있다. requestParamV2 @Slf4j @Controller public class RequestParamController { @ResponseBody @RequestMapping("/request-param-v2") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge) { log.info("username={}, age={}", memberName, memberAge); return "ok"; } } 실행 : http://local..

Spring/Spirng MVC - 기본기능

스프링MVC - HTTP 요청 데이터 조회

HTTP 요청 데이터 조회 - 개요 클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용 JSON, XML, TEXT 데이터 형식은 주로 JSON..

진이최고다
'Spring/Spirng MVC - 기본기능' 카테고리의 글 목록