
RequestParamController 中 requestparamV2 /** * @RequestParam 사용 * - 파라미터 이름으로 바인딩 * @ResponseBody 추가 * - View 조회를 무시하고, HTTP message body에 직접 해당 내용 입력 */ // @RequestParam 어노테이션을 사용하여 파라미터를 바로 메서드 매개변수로 받는 방법. @ResponseBody // 메서드의 반환 값이 HTTP 응답 본문에 직접 쓰여야 함을 나타냄. @RequestMapping("/request-param-v2") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") in..

HTTP 요청 데이터 조회 - 개요. 서블릿에서 학습했던 것을 떠올리면서 이걸 스프링이 얼마나 깔끔하고 효율적으로 바꿔주는지 생각해보면 된다. HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 3가지 방법 요청 파라미터 - 쿼리 파라미터, HTML Form HttpServletRequest 의 request.getParameter() 를 사용하면 다음 두가지 요청 파라미터를 조회할 수 있다. 이제 하나씩 알아보자. 먼저 RequestParamController @Slf4j // Lombok을 사용하여 로깅을 위한 Logger를 자동으로 생성. @Controller . public class RequestParamController { // HttpServletRequest와 HttpSe..

HTTP 요청 - 기본, 헤더 조회 어노테이션 기반의 스프링 컨트롤러는 (정말정말) 다양한 파라미터를 지원한다. 예시를 몇 가지 살펴본다. RequestHeaderController @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletRequest response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, // host 대신에 아..
Locale은 Java 및 기타 프로그래밍 언어에서 지역화와 관련된 정보를 다루기 위한 클래스입니다. 여기서 자세한 설명을 제공하겠습니다. Locale은 두 가지 주요 정보를 저장합니다: 언어 (Language): 언어 코드는 특정 언어를 나타내는 부분입니다. 이것은 언어를 식별하기 위한 약어 또는 코드입니다. 예를 들어, 영어는 "en"으로, 한국어는 "ko"로 표시됩니다. 국가 또는 지역 (Country/Region): 국가 또는 지역 코드는 특정 지역 또는 국가를 식별하는 부분입니다. 이것은 국가 또는 지역을 식별하기 위한 약어 또는 코드입니다. 예를 들어, 미국은 "US"로, 캐나다는 "CA"로 표시됩니다. Locale은 위 두 정보를 결합하여 지역 또는 언어 설정을 정확하게 나타냅니다. 예를 들..

회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} RequestHeaderController - 전체 코드 @RestController @RequestMapping("/mapping/users") public class MappingClassController { // 1 @GetMapping public String user() { return "get users"; } // 2 @PostMapping public String addUser() { return "post user"; } // 3 @GetMappi..

MappingController @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } 이 url이 오면 실행이 된다. 매핑 정보(한번 더) 둘다 허용 - 스프링 부트 3.0 이전 다음 두가지 요청은 다른 URL이지만, 스프링은 다음 URL 요청들을 같은 요청으로 매핑한다. 매핑: /hello-basic URL 요청: /hello-basic , /hello-basic/ HTTP..

스프링 MVC - 실용적인 방식 MVC 프레임워크 만들기에서 v3은 ModelView를 개발자가 직접 생성해서 반환했기 때문에, 불편했던 기억이 날 것이다. 물론 v4를 만들면서 실용적으로 개선한 기억도 날 것이다. 스프링 MVC는 개발자가 편리하게 개발할 수 있도록 수 많은 편의 기능을 제공한다. 실무에서는 지금부터 설명하는 방식을 주로 사용한다. SpringMemberControllerV3 * v3 * Model 도입 * ViewName 직접 반환 * @RequestParam 사용 * @RequestMapping -> @GetMapping, @PostMapping @Controller // Spring 컨테이너에 컨트롤러 빈으로 등록됨 @RequestMapping("/springmvc/v3/membe..

@RequestMapping 을 잘 보면 클래스 단위가 아니라 메서드 단위에 적용된 것을 확인할 수 있다. 따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다. SpringMemberControllerV2 * 클래스 단위 -> 메서드 단위 * @RequestMapping 클래스 레벨과 메서드 레벨 조합 @Controller // Spring 컨테이너에 컨트롤러 빈으로 등록됨 @RequestMapping("/springmvc/v2/members") // 클래스 레벨의 URL 매핑 public class SpringMemberControllerV2 { private MemberRepository memberRepository = MemberRepository.getInstance(); @RequestM..