Spring Framework/Web on Servlet Stack(51)
-
Mapping Requests
이 섹션에서는 어노테이션이 달린 컨트롤러에 대한 request mapping에 대해 설명합니다.@RequestMapping1. @RequestMapping@RequestMapping 애너테이션은 클라이언트 요청을 특정 컨트롤러 메서드에 매핑하는 역할을 합니다. 서버로 들어오는 요청의 경로, HTTP 메서드(GET, POST 등), 요청 파라미터, 헤더, 그리고 미디어 타입 등을 기준으로 요청을 특정 컨트롤러의 메서드와 연결합니다.어노테이션 주요 속성value 또는 path: 요청을 매핑할 URL 경로를 지정합니다.method: 요청을 처리할 HTTP 메서드(예: GET, POST 등)를 지정합니다.params: 특정 요청 파라미터에 따라 요청을 매핑할 수 있습니다.headers: 특정 요청 헤더를 기준으..
2024.10.09 -
Declaration
Spring MVC에서 컨트롤러 빈(Controller Bean)을 정의하려면 Servlet의 WebApplicationContext에서 표준 Spring 빈 정의를 사용할 수 있습니다. @Controller 애노테이션은 컨트롤러 클래스에 사용되며, 이 클래스가 웹 컴포넌트임을 나타내는 역할을 합니다. 또한, Spring의 일반적인 @Component 클래스를 클래스 경로에서 자동으로 감지하고, 이를 빈 정의로 자동 등록하는 방식과 동일하게 @Controller 애노테이션도 자동 감지가 가능합니다.자동 감지 설정@Controller 빈을 자동으로 감지하고 등록하려면, Java 설정에 컴포넌트 스캔을 추가할 수 있습니다. 아래 예시는 @ComponentScan을 사용하여 @Controller 애노테이션이 ..
2024.10.09 -
@RequestParam
@RequestParam 애노테이션은 서블릿 요청 파라미터(쿼리 파라미터 또는 폼 데이터)를 컨트롤러 메서드의 아규먼트와 바인딩하는 데 사용됩니다. 이를 통해 클라이언트가 요청한 URL이나 폼 데이터에 포함된 값을 쉽게 메서드로 전달할 수 있습니다.@RequestParam 기본 사용법@RequestParam을 사용하여 요청 파라미터를 메서드 아규먼트에 바인딩하는 기본적인 예시는 다음과 같습니다.컨트롤러 예시@Controller@RequestMapping("/pets")public class EditPetForm { @GetMapping public String setupForm(@RequestParam("petId") int petId, Model model) { Pet pet ..
2024.10.09 -
Controller Advice
@ControllerAdvice는 스프링에서 여러 컨트롤러에 전역적으로 적용할 수 있는 기능을 제공합니다. @ExceptionHandler, @InitBinder, @ModelAttribute 메서드를 특정 컨트롤러가 아닌 모든 컨트롤러에 적용할 수 있도록 합니다. @RestControllerAdvice는 @ControllerAdvice와 비슷하지만 JSON이나 XML 형식으로 응답을 처리합니다.주요 특징:전역 적용: 모든 컨트롤러에 예외 처리 및 데이터 바인딩을 적용합니다.타겟 설정: 특정 패키지나 클래스, 어노테이션을 사용하여 적용 범위를 제한할 수 있습니다.예시:import org.springframework.web.bind.annotation.ControllerAdvice;import org.sp..
2024.10.09 -
Exceptions
@ExceptionHandler는 스프링 MVC에서 발생하는 예외를 처리하는 메서드를 정의할 수 있도록 해줍니다. 이 어노테이션을 사용하면 특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 지정할 수 있으며, 예외를 처리한 후 적절한 HTTP 응답을 반환할 수 있습니다.@Controller 또는 @ControllerAdvice 클래스에서 사용되며, 예외가 발생하면 지정된 메서드가 호출됩니다.기본 개념예외 처리: @ExceptionHandler 가 적용된 메서드는 컨트롤러에서 발생한 예외를 처리할 수 있습니다. 이 메서드는 발생한 예외 타입을 아규먼트로 받아 처리할 수 있으며, HTTP 응답을 리턴할 수 있습니다.예외 매칭: 예외 처리는 발생한 예외의 상위 클래스나, 중첩된 원인 예외(cause ex..
2024.10.09 -
Validation
스프링 MVC는 컨트롤러 메서드에서 유효성 검사(Validation)를 지원하며, 이를 통해 요청 데이터가 정확한지 검증할 수 있습니다. 유효성 검사는 두 가지 수준에서 적용될 수 있습니다.메서드 파라미터 단위의 유효성 검사: @ModelAttribute, @RequestBody, @RequestPart에 적용할 수 있으며, 이러한 파라미터가 @Valid나 @Validated로 주석 처리되면 개별적으로 검증됩니다.메서드 레벨의 유효성 검사: 메서드 파라미터나 메서드 자체에 @Constraint(예: @Min, @NotBlank 등)를 선언하여 검증할 수 있습니다. 메서드 검증은 메서드 파라미터뿐만 아니라 중첩된 객체의 유효성 검사까지 적용됩니다.주요 개념@Valid와 @Validated: 요청 데이터를 ..
2024.10.09