Back-end/Spring
-
SpringBoot - MVC ExceptionHandlerBack-end/Spring 2020. 6. 27. 23:51
ExceptionHandler 기본적으로 등록되어있는 ErrorHandler가 메시지를 출력해주지만 직접 커스텀하여 에러 메시지를 출력할 수도 있습니다. 위 사진이 기본적으로 등록된 에러 메시지입니다. curl 명령어로 보면 JSON 형식으로 오류가 나는 것을 확인 가능합니다. BasicErrorController : 기본 예외 처리를 합니다. 핸들러 실습 해보기 Controller 클래스 @Controller public class SampleController { @GetMapping("/hello") public String hello() { throw new SampleException(); } } 먼저 Hello 요청을 보낼 때 SampleException 클래스를 통해 에러메시지를 출력하기 위..
-
SpringBoot - MVC HtmlUnitBack-end/Spring 2020. 6. 27. 23:50
HtmlUnit HTML 뷰의 테스트를 전문적으로 하기 위해서 사용하는 툴 입니다. 홈페이지 : 공식홈페이지 사용방법 : 공식홈페이지 - 사용방법 의존성 추가하기 org.seleniumhq.selenium htmlunit-driver test net.sourceforge.htmlunit htmlunit test 두 가지의 의존성을 추가합니다. 테스트 클래스 @RunWith(SpringRunner.class) @WebMvcTest(SampleController.class) public class SampleControllerTest { @Autowired WebClient webClient; // 의존성을 추가하면 WebClient를 주입받을 수 있습니다. @Test public void hello() t..
-
SpringBoot - MVC ThymeleafBack-end/Spring 2020. 6. 27. 23:47
Thymeleaf(타임리프) MVC에서 동적으로 컨텐츠를 생성하여 뷰로 출력시키는 역할을 하는 템플릿 엔진입니다. 템플릿 위치 : /src/main/resources/template/ 홈페이지 : 타임리프 홈페이지 5분 타임리프 익히기 : 5분 타임리프 JSP를 지양하는 이유 JSP는 자동설정을 지원하지 않는데다가 SpringBoot가 지향하는 독립적으로 실행가능한 임베디드 톰캣으로 빠르고 쉽게 개발하고 배포하는 의도와 다릅니다. WAR파일로 패키징하여야 합니다.(물론 해결 방법은 있습니다.) JBOSS에서 만든 가장 최신 Servlet 엔진 Undertow는 JSP를 지원하지 않습니다. 참고문서 : 스프링공식문서 타임리프 의존성 추가하기 타임리프를 사용하기 위해선 의존성을 추가해주어야 합니다. org..
-
SpringBoot - MVC Index, Favicon(인덱스, 파비콘)Back-end/Spring 2020. 6. 27. 23:46
Index(인덱스) 인덱스는 /로 요청했을 때 호출되는 페이지를 말합니다. SpringBoot에서는 Error Handler가 내장 인덱스 페이지를 보여줍니다. 이 페이지를 커스텀 시켜보겠습니다. 기본 리소스 위치에 index.html이 있으면 자동으로 매핑하여 출력해줍니다. 혹시 기본 리소스 위치가 기억이 안난다면 정적리소스를 참고해주시면 됩니다. index.html에 있는 제목이 출력된 모습입니다. Favicon(파비콘) 파비콘은 웹페이지 로드시 함께 출력되는 좌측에 이미지를 말합니다. 파비콘 만드는 홈페이지 : 파비콘 만들기 파비콘 위치 : 기본 리소스 위치 스프링 파비콘에서 내가 커스텀한 파비콘으로 바뀐 것을 알 수 있습니다. 혹시나 파비콘이 바뀌지 않는다면 파비콘 오류시 해결방법을 참고하시면 됩..
-
SpringBoot - MVC WebJar(웹Jar)Back-end/Spring 2020. 6. 27. 23:44
WebJar(웹Jar) 각종 라이브러리를 JAR파일로 추가가 가능하게 해줍니다. jQuery를 예시로 공부해보겠습니다. Mapping(매핑)은 기본적으로 /webjars/** 입니다. jQuery JAR 추가해보기 라이브러리를 가져옵니다. mvnrepository jQuery의 3.3.1 버전의 jar형식의 라이브러리를 pom.xml에 추가합니다. jQuery 사용하기 그리고 HTML에 매핑경로에 맞춰 jar를 추가한 후 간단한 alert 창을 출력합니다. 정적 리소스 HTML경로로 들어가게 되면 jar가 인식되어 경고창이 뜨는 것을 확인할 수 있습니다. 혹시 정적 리소스에 대해 알고싶으시다면 정적 리소스를 참고해주시면 됩니다. 하지만 jar를 추가할 때 버전을 포함하여 추가하게 되면 버전이 업데이트..
-
SpringBoot - MVC Static Resource(정적 리소스)Back-end/Spring 2020. 6. 27. 23:42
Static Resource(정적 리소스) 클라이언트가 요청하면 기존에 만들어져있는걸 그냥 응답(보내)주면 되는 경우에 사용합니다. 기본적인 Mapping(매핑) 경로는 /** 입니다. 기본 리소스 위치 classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 위치에 html 파일을 생성하게 되면 자동으로 Root(기본) 경로로 매핑됩니다. 정적 리소스의 원리 정적 리소스가 어떻게 구동되는지 원리를 알아봅시다. 최초 클라이언트에서 요청을 보냈을 때 304가 출력됩니다. 이러한 요청에 대해서 응답을 보내면 200이 출력됩니다. 이런 status는 어떻게 나온걸까요? 이를 알기위해선 If-Modyfied-Si..
-
SpringBoot - MVC ViewResolverBack-end/Spring 2020. 6. 27. 23:40
ViewResolver client가 요청을 보내면 Accept Header 에 따라 응답이 달라지게 되는데 이러한 요청을 처리하기 위해 사용합니다. Accept Header가 없는 경우 /path?format=pdf 와 같은 형식으로 알 수 있습니다. XML 컨버터 사용방법 대표적으로 XML이 기본적으로 제공되어있지 않기 때문에 XML로 응답하기 위한 방법을 공부하도록 하겠습니다. Test 클래스 @Test public void createUser_XML() throws Exception { String userJson = "{\"username\":\"junjang\", \"password\":\"123\"}"; //요청을 만드는 단계 mockMvc.perform(post("/users/create"..
-
SpringBoot - MVC HttpMessageConvertersBack-end/Spring 2020. 6. 27. 23:17
HttpMessageConverters SpringFrameWork에서 제공하는 인터페이스 SpringMVC 의 일부분으로 HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용합니다. 예제를 보면서 공부해보겠습니다. HttpMessageConverters에 사용되는 어노테이션 함께 사용하는 어노테이션 2가지가 있습니다. @RequestBody @ResponseBody @Controller에서는 반드시 붙여야됩니다. @RestController는 생략해도됩니다. 자동으로 설정 뷰 네임 리졸버를 안타고 바로 MessageConverter 타고 응답 본문으로 내용이 들어갑니다. Test 클래스 @RunWith(SpringRunner.class) @WebMvcTest(UserC..