본문 바로가기
반응형

Develop/Spring56

[Spring] HTTP 메시지 컨버터 HTTP 메시지 컨버터란? JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우, HTTP 메시지 컨버터를 사용하면 매우 편리하다! HTTP 메시지 컨버터란, 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용하는 컨버터다. 🔻 포스팅을 보기 전, @ResponseBody를 다시 살펴보자. 더보기 웹 브라우저가 "localhost:8080/hello-api" 접근 서버를 거쳐 helloController 호출 helloController의 @ResponseBody를 통해 HttpMessageConverter가 호출 return 타입에 따라 JsonConverter 또는 StringConverter를 이용해 return.. 2021. 10. 10.
[Spring] HTTP 응답 📖 개요 서버에서 응답 데이터를 만드는 방법은 크게 3가지다. 정적 리소스 (ex: 정적 html, css, js, ...) 뷰 템플릿 (ex: 동적 html) HTTP 메시지 📕 1. 정적 리소스 정적 리소스는 해당 파일을 변경 없이 그대로 서비스하는 것이다. src/main/resources는 리소스를 보관하는 곳이고, 클래스패스의 시작 경로다. 스프링 부트는 클래스 패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources 📒 2. 뷰 템플릿 뷰 템플릿을 거쳐 html이 생성되고, 뷰가 응답을 만들어 전달한다. 일반적으로 html을 동적으로 생성하는 용도로 사용된다. 스프링 부트의 기본 뷰 템플릿 경로는 아래와 같다.. 2021. 8. 11.
[Spring] http 요청 데이터 조회 📖 개요 클라이언트에서 서버로 요청 데이터를 전달하는 경우는 크게 3가지가 있다. GET - 쿼리 파라미터 (ex: ~~/url?username=yeonLog) POST - html form 태그 HTTP 메시지 바디에 데이터 직접 담기 (ex: json, xml, text, ...) 위 3가지 방법을 통해 요청 데이터를 실제로 조회해보자. 📕 1. GET - 쿼리 파라미터 url 뒤에 파라미터를 직접 넣어주는 방식 RequestParamController.java @Slf4j @Controller public class RequestParamController { @RequestMapping("/request-param-v1") public void requestParamV1(HttpServletReq.. 2021. 8. 9.
[Spring] 헤더 조회 어노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 받아올 수 있다. 어떠한 파라미터를 받아올 수 있는지 몇 가지 예제를 통해 살펴보겠다. 📚 HTTP 헤더 조회 @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest req, HttpServletResponse res, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, @CookieValue(value="myCookie", .. 2021. 7. 14.
[Spring] 요청 매핑 이제 간단한 요청 매핑 예제를 만들어서 PostMan으로 테스트할 것이다. MappingController를 만들고 테스트용으로 가장 간단한 메소드를 만들었다. @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } @RestController @Controller는 반환 값이 String이면 View 이름으로 인식 @RestController는 반환 값을 HTTP 메시지 바디에 바로 입력 .. 2021. 6. 25.
[스프링 MVC] @Controller, @RequestMapping 지난 게시글에서 OldController를 통해 기존의 Controller 동작 방식을 살펴봤었다. 이제 본격적으로 스프링 MVC의 편리한 기능들을 사용할 것이다. 컨트롤러를 작성하는데 키 포인트는 @Controller와 @RequestMapping 이 두 어노테이션이다. 이 두 가지에 대해 간단히 설명하고 코드를 작성하겠다. @Controller 내부에 @Component 어노테이션이 존재해 컴포넌트 스캔의 대상 스프링이 자동으로 스프링 빈으로 등록 스프링 MVC에서 어노테이션 기반 컨트롤러로 인식하게 함 @RequestMapping 요청 정보를 매핑 해당 url이 호출되면 해당 메소드가 호출 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 + 핸들러 매핑과 핸들러 어댑터 중 가장 우선순위가 높은 .. 2021. 5. 27.
[스프링 MVC] 뷰 리졸버 지난 번에 만들었던 OldController를 수정해서 뷰 리졸버의 작동을 살펴보자. ( 프로젝트 전체: https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 ) OldController @Component("/springmvc/old-controller") public class OldController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { System.out.println("OldController.handleRequest"); return new .. 2021. 5. 26.
[스프링 MVC] 핸들러 매핑, 핸들러 어댑터 핸들러 매핑과 핸들러 어댑터가 어떤 것들이 어떻게 사용되는지 확인해보자. Controller 인터페이스와 HttpRequestHandler 핸들러(컨트롤러)를 통해 예시를 들겠다. Controller 인터페이스 과거 Spring에서 사용했던 인터페이스 @Controller 어노테이션과는 전혀 다름 public interface Controller { ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception; } 지난 게시글에서 살펴봤던 스프링 MVC 구조를 다시 살펴보자. (글 순서: https://github.com/yeon-06/inflearnSpring/tree/master/.. 2021. 5. 24.
[스프링 MVC] 스프링 MVC 구조, DispatcherServlet 목차 1. 기존 프로젝트의 구조 2. 스프링 MVC 구조 3. DispatcherServlet 1. 기존 프로젝트 구조 여태껏 만든 프로젝트의 구조를 한번 정리해보자. ( 프로젝트는 https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 참조) 핸들러 조회: Handler 매핑을 통해 요청 url에 매핑된 핸들러(컨트롤러) 조회 핸들러 어댑터 조회: 핸들러를 처리할 수 있는 핸들러 어댑터 조회 핸들러 어댑터 실행: handler(handler) 핸들러 실행: 핸들러 어댑터가 실제 핸들러 실행 ModelView 반환: 핸들러 어댑터가 핸들러의 반환 정보를 ModelView 형태로 변환해서 반환 viewResolver 호출 MyView 반환: viewReso.. 2021. 5. 24.
반응형