Spring 177

스프링MVC 프로젝트 - 도메인 개발 & 상품 서비스 HTML

계속해서 만들던 대로 프로젝트를 여기서 생성하자. 실행해보면 잘 나온다. // ItemServiceApplication package hello.itemservice; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ItemServiceApplication { public static void main(String[] args) { SpringApplication.run(ItemServiceApplication.class, args); } } 이제 welcome page를 추가..

Spring/SpringMVC 2022.05.03

요청 매핑 헨들러 어뎁터 구조

HTTP 메시지 컨버터는 스프링 MVC 어느 부분에서 사용이 되는지 궁금할 수 잇다. @RequestMapping을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter(요청 매핑 핸들러 어뎁터에 있다.) ArgumentResolver HttpServletRequest, Model @RequestParam, @ModelAttribute 같은 애노테이션 @RequestBody, HttpEntity 같은 HTTP 메시지를 처리하는 부분까지 큰 유연함을 보여주었다. ArgumentResolver 덕택에 파라미터를 유연하게 처리할 수 있었다. RequestMappingHandlerAdaptor는 ArgumentResolver를 호출해서 컨트롤러(핸들러)기 필요로 하는 여러 파라미터의 값을..

Spring/SpringMVC 2022.05.01

HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 & HTTP 메시지 컨버터

HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 한다. HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. HTML이나 뷰 템플릿 사용해도 HTTP 응답 메시지 바디에 HTML 데이터가 담겨서 전달됨. 정적 리소스나 뷰 템플릿 거치지 않고, 직접 HTTP 응답 메시지를 전달하는 경우를 말함 // ResponseBodyController Class package hello.springmvc.basic.response; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframe..

Spring/SpringMVC 2022.05.01

HTTP 요청 메시지 - JSON & HTTP 응답 - 정적 리소스, 뷰 템플릿

HTTP API에서 주로 사용하는 JSON 데이터 형식을 알아보자. JSON 형식을 다루므로 ObjectMapper을 쓰자. 실행을 시켜주면 // RequestBodyJsonController Class package hello.springmvc.basic.request; import com.fasterxml.jackson.databind.ObjectMapper; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.util.StreamUtils; import org.springframewo..

Spring/SpringMVC 2022.05.01

HTTP 요청 파라미터 - @ModelAttribute & 단순 텍스트

스프링은 요청 파라미터를 받아서 필요한 객체를 만들어주고 객체에 값을 넣어주는 @ModelAttribute 기능을 제공한다. 요청 파라미터를 바인딩 받을 객체를 만들어 보면 // HelloData package hello.springmvc.basic; import lombok.Data; @Data public class HelloData { private String username; private int age; } 롬복 @Data @Getter , @Setter , @ToString , @EqualsAndHashCode , @RequiredArgsConstructor 를 자동으로 적용해준다. request 패키지의 RequestParamController에서 아래와 같이 지정해주고 돌려주면 로그가 ..

Spring/SpringMVC 2022.04.29

HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form & RequestParam

클라이언트에서 서버로 요청 데이터를 전달할 때 다음 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 사용 POST, PUT, PATCH 스프링으로 요..

Spring/SpringMVC 2022.04.29

HTTP 요청 - 기본, 헤더 조회

HTTP 헤더 정보를 조회하는 방법을 알아보자. RequestHeaderController을 만들어 주고 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.jni.Local; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestHeader; import org.spring..

Spring/SpringMVC 2022.04.29

요청 매핑 - API 예시

회원 관리를 HTTP API로 만든다 하고 매핑을 어떻게 하는지 알아보자.(URL 매핑만 신경쓴다.) 회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} MappingClassController를 만들어 보자. // MappingClassController package hello.springmvc.basic.requestmapping; import org.springframework.web.bind.annotation.*; @RestController public class MappingClassControlle..

Spring/SpringMVC 2022.04.29

스프링MVC 기본기능

프로젝트를 먼저 생성해보자. 여기서 프로젝트 생성 후 SpringmvcApplication을 돌려보자. package hello.springmvc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringmvcApplication { public static void main(String[] args) { SpringApplication.run(SpringmvcApplication.class, args); } } Welcome 페이지도 한번 만들어 보자. 스프링 부트에 Ja..

Spring/SpringMVC 2022.04.29