spring
-
HTTP 요청 매핑하기 - URI 패턴 매핑백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 25. 18:19
요청 식별자로 매핑하기 @requestMapping은 다음의 패턴을 지원 ? : 한글자 /author/??? -> /authour/123 * : 여러글자 /author/* -> /author/jinSeok ** : 여러패스 /author/** -> /author/jinSeok/book @RestController public class SampleController2 { @GetMapping({"/hello", "/hi"}) @ResponseBody public String hello() { return "hello"; } @GetMapping({"/hello?"}) @ResponseBody public String hello2() { return "hello"; } @GetMapping({"/hello..
-
HTTP 요청 매핑하기 - 요청 메소드백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 25. 11:50
HTTP Method GET POST PUT PATCH DELETE GET 요청 클라이언트가 서버의 리소스를 쵸어할 때 사용 캐싱할 수 있다(조건적인 GET으로 바뀔 수 있다) 브라우저 기록에 남는다 북마크 할 수 있다 민감함 데이터를 보낼 때 사용하지 않는다(URL에 존재) imdempotent 먹등성 여러번 요청을 하더라도 결과가 달라지지 않는 성질 POST 요청 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용 서버에 보내는 데이터를 POST 요청 본문에 담는다 캐시할 수 없다 브라우저 기록에 남지 않는다 북마크 할 수 없다 데이터 길이 제한이 없다. URI를 보내는 데이터를 처리할 리소스를 지칭 PUT 요청 URL에 해당하는 데이터를 새로 만들거나 수정할 때 사용 POST와 다른점은 "U..
-
HTTP 메시지 컨버터 : XML백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 19. 15:27
OXM(Object-XML Mapper) 라이브러리 중에 스프링이 지원하는 의존성 추가 JacksonXML JAXB 스프링 부트를 사용하는 경우 기본으로 XML 의존성 추가해주지 않기 때문에 아래와같이 의존성을 추가해 준다. javax.xml.bind jaxb-api org.glassfish.jaxb jaxb-runtime org.springframework spring-oxm ${spring-framework.version} 예제 package kr.co.study; import static org.springframework.test.web.client.match.MockRestRequestMatchers.jsonPath; import static org.springframework.test.web...
-
리소스 핸들러백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 12:01
리소스 핸들러란? 이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러 디폴트(Default) 서블릿 서블릿 컨테이너가 기본으로 제공하는 서블릿으로 정적인 리소스를 처리할 때 사용 한다. tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 스프링 MVC 리소스 핸들러 맵핑 등록 스프링은 정적인 리소스(디폴트 서블릿)들의 요청을 위임해서 처리한다. 가장 낮은 우선 순위로 등록 다른 핸들러 매핑이 "/" 이하 요청을 처리하도록 허용 최종적으로 리소스 핸들러가 처리하도록 tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 리소스 핸들러 설정 어떤 요청패턴을 지원할 것인가 어디서 리소스를 찾..
-
핸들러 인터셉터백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 6. 16:18
HandlerInterceptor 핸들러 맵핑에 설정할 수 있는 인터셉터 핸들러를 실행하기 전, 후(아직 랜더링 전) 그리고 완료(랜더링까지 끝난 이후) 시점에 부가 작업을 하고 싶은 경우에 사용할 수 있다. 여러 핸들러에서 반복적으로 사용하는 코드를 줄이고 싶을 때 사용할 수 있다. 로깅, 인증 체크, Locale 변경 등... boolean preHandle(request, response, handler) 핸들러 실행하기 전에 호출 됨 “핸들러"에 대한 정보를 사용할 수 있기 때문에 서블릿 필터에 비해 보다 세밀한 로직을 구현할 수 있다. 리턴값으로 계속 다음 인터셉터 또는 핸들러로 요청,응답을 전달할지(true) 응답 처리가 이곳에서 끝났는지(false) 알린다. void postHandle(re..
-
스프링 부트의 스프링 기본 세팅백기선(인프런 강의)/스프링 웹 MVC 2020. 8. 28. 23:14
1. 스프링 부트를 프로젝트를 만들기 전 아래와 같이 Thymeleaf와 Spring Web 의존성을 추가해 준다. 2. 아래의 구조에 맞게 코드를 만들어 준다. package kr.co.study; import java.time.LocalDateTime; public class Event { private String name; private int limitofEnrollment; private LocalDateTime startDateTime; private LocalDateTime endDateTime; public Event(String name, int limitofEnrollment, LocalDateTime startDateTime, LocalDateTime endDateTime) { su..
-
스프링 MVC 구성요소백기선(인프런 강의)/스프링 웹 MVC 2020. 8. 26. 22:18
MultipartResolver 파일 업로드 요청 처리에 필요한 인터페이스 바이너리 데이터를 조금씩 처리를 구현체에 위임함 HttpServletRequest를 MultipartHttpServletRequest로 변환해주어 요청이 담고 있는 File을 꺼낼 수 있는 API 제공. LocaleResolver 클라이언트의 위치(Locale) 정보를 파악하는 인터페이스 기본 전략은 요청의 accept-language를 보고 판단. ThemeResolver 애플리케이션에 설정된 테마를 파악하고 변경할 수 있는 인터페이스 css변경 쿠기, 세션, Fiexed 등으로 구성되어있다. 기본으로 Fiexed를 사용하기 때문에 실질적으로 사용 안함 https://memorynotfound.com/spring-mvc-them..
-
Dispatcherservlet백기선(인프런 강의)/스프링 웹 MVC 2020. 8. 24. 21:05
DispatcherServlet 초기화 다음의 특별한 타입의 빈들을 찾거나, 기본 전략에 해당하는 빈들을 등록한다. HandlerMapping 전략 패턴 사용 핸들러를 찾아주는 인터페이스 BeanNameHandlerMapping RequestMappingHandlerMapping 실질적으로 애노테이션, 컨트롤러와 RequestMapping, 이것을 Meta Annotation으로 사용하고 있는 GetMapping, PostMapping 등을 사용해서 Handler를 지정한 것들을 찾아주는 역할 HandlerAdapter 전략 패턴 사용 Handler를 실행하는 인터페이스 RequestMappingHandlerAdapter HandlerExceptionResolver ViewResolver Dispatch..