JAVA/Spring(109)
-
[SpringBoot] Spring Security #1 MVC, WebFlux Security
Spring Security 만약 Spring Security가 classpath에 있다면, 웹 애플리케이션들은 기본적으로 보호됩니다. Spring Boot는 Spring Security의 content-negotiation strategy에 의존하여 httpBasic을 사용할지 아니면 formLogin을 사용할지 결정합니다. content-negotiation stragegy : user agent(사용자를 대표하는 컴퓨터 프로그램, 웹 맥락에선 브라우저를 의미함)가 어떤 URI에 있는 리소스를 요청할때, 해당 리소스가 사용자에게 적절한 형태(예를 들어 컨텐츠를 한글로 보여줄지, 영어로 보여줄지)로 받도록 정하게 해주는 방법 httpBasic : Http Basic 인증, Http 프로토콜에서 정의한 ..
2022.11.20 -
[SrpingBoot] RestAPI에 대한 에러 핸들링
1. 개요 해당 글은 Spring REST API에 대한 예외 핸들링을 구현하는 방법에 대해서 소개합니다. 스프링 3.2 이전에 Spring MVC 애플리케이션의 에러 핸들링하는 두가지 방법은 다음과 같습니다. HandlerExceptionResolver @ExceptionHandler 스프링 3.2 이후에는 @ControllerAdvice 애노테이션을 사용하여 위 두가지 방법의 단점을 해결하고 전체 애플리케이션의 예외 처리를 하고 있습니다. 스프링 5에서는 ResponseStatusException 클래스를 소개합니다. 이것은 REST API에서 기본적인 에러를 다루는 가장 빠른 방법의 클래스입니다. 2. Solution1, 컨트롤러 레벨에서 @ExceptionHandler 사용하기 첫번째 솔루션은 @..
2022.11.18 -
[SpringBoot][WebMVC] 웰컴페이지와 파비콘
1. 웰컴 페이지란 무엇인가? 애플리케이션의 루트 주소(/)를 요청했을때 보여주는 페이지 애플리케이션에 index.html 파일이 있으면 제공 애플리케이션에 index.템플릿이 있으면 제공 index.html, index.템플릿 둘다 없으면 에러 페이지를 보여줌 2. 실습, index.html (웰컴 페이지) 생성 1. resources/static/index.html 페이지 생성하고 작성 Welcome Page 2. 애플리케이션을 실행하여 “http://localhost:8080/” 요청하여 결과 확인 3. 파비콘(favicon) 파비콘은 웹 사이트 또는 웹 페이지를 대표하기 위해 웹 브라우저에 사용되는 16x16 픽셀 작은 이미지입니다. 4. 실습, 파비콘 생성 및 변경 1. https://favic..
2022.11.10 -
[SpringBoot][WebMVC] 웹 JAR
1. 웹 JAR란 무엇인가? Web JAR는 클라이언트에서 사용하는 웹 라이브러리(jquery와 bootstrap)을 JAR 파일 안에 패키징한것이다. 2. 실습, Jquery 웹 라이브러리를 의존성 추가 1. jquery 의존성 추가 implementation 'org.webjars.bower:jquery:3.6.1' 2. html 파일에 jquery 소스 주소를 정의하고 jquery 쿼리 함수 호출 hello world modified 3. 실습, WebJars Locator Core 의존성 추가 jquery같은 웹 라이브러리의 버전을 생략하기 위해서는 WebJars Locator Core 의존성 라이브러리를 추가해야 합니다. 1. WebJars Locator Core 의존성 추가 implementa..
2022.11.10 -
[SpringBoot][WebMVC] 정적 리소스 지원
1. 정적 리소스 맵핑 “/**” 기본 리소스 위치 classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 예) “/hello.html” ⇒ /static/hello.html spring.mvc.static-path-pattern: 맵핑 설정 변경 가능 spring.mvc.static-locations: 리소스 찾을 위치 변경 가능 (비권장) Last-Modified 헤더를 보고 304 응답을 보냄 정적 리소스가 수정되면 200 응답을 보냄 정적 리소스가 수정되지 않은 상태에서 다시 자원을 요청시 304 응답을 보냄 304 응답을 보내면서 정적 리소스를 다시 보내지는 않음(빨리짐을 의미함) Resourc..
2022.11.09 -
[SpringBoot][WebMVC] HttpMessageConverters
HttpMessageConverters란 무엇인가? HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용하는 컨버터 {”username” : “yonghwan”, “password” : “123”} ↔ User @RequestBody HTTP 요청 본문을 객체로 변환 @ResponseBody 객체를 HTTP 요청 본문으로 변환 컨트롤러에 @RestController가 붙어있으면 리턴 타입에 @ResponseBody를 생략할 수 있음 // before @PostMapping("/users/create") public @ResponseBody User create(@RequestBody User user){ return user; } // after @PostMapping(..
2022.11.08