Spring Framework/Web on Servlet Stack(72)
-
Declaration
Spring MVC에서 Controller가 동작하려면컨트롤러는 반드시 DispatcherServlet 전용 WebApplicationContext 안에 빈으로 등록되어 있어야 합니다.그리고 이때 사용하는 방식은 우리가 익숙한 표준적인 빈 정의 방법(@Controller, @Bean, XML , 등)입니다. @Controller 애노테이션은 컨트롤러 클래스에 사용되며, 이 클래스가 웹 컴포넌트임을 나타내는 역할을 합니다. 또한, Spring의 일반적인 @Component 클래스를 클래스 경로에서 자동으로 감지하고, 이를 빈 정의로 자동 등록하는 방식과 동일하게 @Controller 애노테이션도 자동 감지가 가능합니다.자동 감지 설정@Controller 빈을 자동으로 감지하고 등록하려면, Java 설정에 ..
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.s..
2024.10.09 -
Exceptions
@ExceptionHandler는 스프링 MVC에서 발생하는 예외를 처리하는 메서드를 정의할 수 있도록 해줍니다. 이 어노테이션을 사용하면 특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 지정할 수 있으며, 예외를 처리한 후 적절한 HTTP 응답을 반환할 수 있습니다.@Controller 또는 @ControllerAdvice 클래스에서 사용되며, 예외가 발생하면 지정된 메서드가 호출됩니다.기본 개념예외 처리: @ExceptionHandler 가 적용된 메서드는 컨트롤러에서 발생한 예외를 처리할 수 있습니다. 이 메서드는 발생한 예외 타입을 아규먼트로 받아 처리할 수 있으며, HTTP 응답을 리턴할 수 있습니다.예외 매칭: 예외 처리는 발생한 예외의 상위 클래스나, 중첩된 원인 예외(cause ex..
2024.10.09 -
Validation
스프링 MVC는 컨트롤러 메서드에서 유효성 검사(Validation)를 지원하며, 이를 통해 Http request의 데이터가 정확한지 검증할 수 있습니다. 유효성 검사는 두 가지 수준에서 적용될 수 있습니다.메서드 파라미터 단위의 유효성 검사: @ModelAttribute, @RequestBody, @RequestPart에 적용할 수 있으며, 이러한 파라미터가 @Valid나 @Validated로 어노테이션 처리되면 개별적으로 검증됩니다.메서드 레벨의 유효성 검사: 메서드 파라미터나 메서드 자체에 @Constraint(예: @Min, @NotBlank 등)를 선언하여 검증할 수 있습니다. 메서드 검증은 메서드 파라미터뿐만 아니라 중첩된 객체의 유효성 검사까지 적용됩니다.주요 개념@Valid와 @Valid..
2024.10.09 -
@InitBinder
@InitBinder 어노테이션은 스프링 MVC에서 WebDataBinder를 초기화하고 사용자 정의 바인딩 로직을 설정하는 데 사용됩니다. WebDataBinder는 HTTP 요청에서 전달된 파라미터를 특정 객체에 바인딩할 때 사용되는 중요한 역할을 담당합니다.@InitBinder의 주요 역할요청 파라미터를 객체에 바인딩: HTTP 요청에서 전달된 데이터를 모델 객체에 바인딩할 때 데이터 형 변환 및 유효성 검사에 관여합니다.문자열 데이터를 객체 속성 유형으로 변환: 요청에서 전달된 값(일반적으로 문자열)을 모델 객체의 속성 유형에 맞게 변환합니다. 예를 들어, 날짜 형식의 문자열을 Date 객체로 변환하는 등의 작업을 수행합니다.HTML 폼을 렌더링할 때 객체 속성을 문자열로 변환: 객체 데이터를 문..
2024.10.09