Spring
[Spring Boot] @RequestHeader, Header의 데이터
@RequestHeader 이란? @RequestHeader 애노테이션은 웹 request header에 바운딩 된 데이터를 나타낸다. HttpHeaders의 메서드를 통해 header의 원하는 데이터를 추출할 수 있다. Map 또는 MultiValueMap으로 메서드 인자를 설정하면 모든 header의 이름과 값을 불러올 수 있다. @GetMapping("/test") public String test(@RequestHeader HttpHeaders header) { return "header : " + header.gerFirst("Authorization") } 애노테이션에서 Key를 이용하여 데이터를 꺼낼 수도 있다. @GetMapping("/test") public String test(@Req..
[Spring Boot] Validation @Max 와 @Size의 차이
1. Validation이란? Java에서 Bean Validation이라는 데이터 유효성 검사 프레임워크를 제공하여 필드에 annotation을 적용하여 제약 조건을 정의하기 위해 사용한다. Validation은 객체에 직접 정의하여 유효성 검사 로직의 문제를 해결할 수 있다. 2. Dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 3. Parameter 검증하기 @Valid 애노테이션을 객체에 적용하면 유효한 객체인지 검사한다. BindingResult 객체를 통해 유효하지 않을 경우 Error를 확인할 수 있다. @Controller public class TestController { priv..
[Spring Study Group] Spring MVC 요청 경로/클래스 레벨/경로 패턴 / Http 메서드 매핑설정
본 포스팅은 스프링 스터디에서 진행하는 내용을 학습하며 정리한 것입니다. 잘못된 부분이 있거나 보충이 필요한 부분이 있다면 많은 조언 부탁드립니다 : ) Controller에서 클라이언트 요청에 매핑하는 4가지 방법에 대해서 알아보자. 1. 요청 경로 매핑 @RequsetMapping 어노테이션은 클라이언트의 URL 요청을 매핑하기 위해 사용한다. value 속성 : 경로 설정 method 속성 : 메서드에서 처리할 HTTP의 전송방식 설정 Controller Request Path / Method Views HomeController / Get /views/home.jsp @Controller public class HomeController { @RequestMapping(value = "/", me..
[Spring Study Group] Spring Legacy Project 생성하기 - IntelliJ IDEA
본 포스팅은 스프링 스터디에서 진행하는 내용을 학습하며 정리한 것입니다. 잘못된 부분이 있거나 보충이 필요한 부분이 있다면 많은 조언 부탁드립니다 : ) 1. Maven Project 생성하기 [New Project] → Maven 선택 후 Next 프로젝트 이름 작성, 위치 설정 후 Finish GroupId는 프로젝트를 식별하는 값으로 보통 도메인을 반대로 시작하여 작성 ArtifactId는 버전없는 jar파일 이름으로 프로젝트 이름과 동일하게 작성 version은 해당 프로젝트의 버전 프로젝트 생성 후 pom.xml에서 설정값을 변경할 수 있다. 기본 프로젝트의 구조 2. Spring MVC 추가하기 프로젝트 우클릭 후 [Add Framework Support] 선택 Spring MVC 선택 후 D..
@Controller, @RestController 어노테이션 차이
@Controller와 @RestController의 차이점 Spring의 annotation 기반 MVC 프레임워크는 RESTful 웹서비스를 만드는 과정을 단순화한다. 전통적인 방식의 @Controller 어노테이션은 오랫동안 MVC 프레임워크로 사용되어 왔다. Spring 4.0에서 소개된 @RestController 어노테이션은 @Controller 및 @ResponseBody를 생략하여 RESTful 웹 서비스를 쉽게 개발할 수 있도록 만들어 준다. 두 어노테이션의 차이점은 HTTP Response body가 생성되는 방식이다. @Controller은 View가 반환되고, @RestController은 객체를 반환하고 객체 데이터는 JSON 또는 XML로 HTTP 응답에 작성된다. @Contro..