Spring Boot가 데이터 유효성 검사를 위해 @RequestParam을 사용하는 방법

Spring Boot가 데이터 유효성 검사를 위해 @RequestParam을 사용하는 방법

웹 애플리케이션에서 사용자가 제출한 데이터는 일반적으로 요청 매개변수 형식으로 전달됩니다. Spring Boot에서는 @RequestParam주석을 . 그러나 이러한 요청 매개변수의 유효성을 어떻게 보장합니까? 이 기사에서는 데이터 유효성 검사를 위해 @RequestParam주석을 하고 더 나은 이해를 돕기 위해 몇 가지 샘플 코드를 제공합니다.

여기에 이미지 설명 삽입

@RequestParam 소개

Spring Boot에서 @RequestParam주석은 요청에서 매개변수 값을 가져오는 데 사용됩니다. 기본적으로 매개변수는 필수이며 요청에 매개변수가 포함되지 않은 경우 MissingServletRequestParameterException예외가 . 그러나 required특성을 있습니다.

예를 들어 다음 코드는 @RequestParam주석을 id이름이 지정된 요청 매개변수를 얻습니다.

@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id, @RequestParam Long status) {
    // 处理获取用户逻辑
}

위의 코드에서 @RequestParam주석은 status라는 . 요청에 status매개변수가 예외가 발생합니다 MissingServletRequestParameterException.

데이터 유효성 검사

요청 매개변수의 유효성을 확인하기 위해 javax.validation.constraints패키지 . 예를 들어 다음 코드는 @Min주석을 id매개변수의 최소값을 검증합니다.

@GetMapping("/users/{id}")
public User getUser(@PathVariable @Min(1) Long id) {
    // 处理获取用户逻辑
}

위의 코드에서 @Min주석은 id매개변수 . id인수가 1보다 작으면 MethodArgumentNotValidException예외가 발생합니다.

@Min주석 외에도 요청 매개변수의 유효성을 검사하는 데 사용할 수 있는 다른 많은 주석이 있습니다. 예를 들어 @Max주석은 매개변수의 최대값을 확인하는 데 사용되며 @NotBlank주석은 문자열이 비어 있지 않은지 확인하는 데 사용되며 @Email주석은 이메일 주소의 형식을 확인하는 데 사용됩니다.

사용자 지정 오류 메시지

기본적으로 요청 매개변수가 유효하지 않은 경우 기본 오류 메시지와 함께 MethodArgumentNotValidException예외가 . 그러나 message속성을 있습니다.

예를 들어 다음 코드는 사용자 지정 오류 메시지를 사용하여 id매개 변수 .

@GetMapping("/users/{id}")
public User getUser(@PathVariable @Min(value = 1, message = "id 必须大于等于 1") Long id) {
    // 处理获取用户逻辑
}

위의 코드에서 message속성을 사용자 지정 오류 메시지를 지정합니다. id인수가 1보다 작으면 MethodArgumentNotValidException사용자 정의 오류 메시지와 함께 예외가 발생합니다.

결합 수표

경우에 따라 여러 요청 매개변수에 대해 결합된 유효성 검사를 수행해야 할 수도 있습니다. 예를 들어 start매개변수가 매개 end. 이 경우 @Valid주석 .

다음은 사용자 지정 개체를 사용하여 체크섬 과 매개 변수를 결합 DateRange하는 샘플 코드입니다 .startend

public class DateRange {
    @NotNull
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private LocalDate start;

    @NotNull
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private LocalDate end;

    // getters/setters omitted
}

@GetMapping("/users")
public List<User> getUsers(@Valid DateRange dateRange) {
    // 处理获取用户列表逻辑
}

위의 코드에서는 @Valid주석을 DateRange개체의 유효성을 검사합니다. DateRange개체 start에는 각각 및 주석을 사용하여 유효성이 검사되는 및 end속성이 포함 @NotNull되어 있습니다 . 보다 크면@DateTimeFormat 예외가 발생합니다 .startendMethodArgumentNotValidException

요약하다

이 기사에서는 요청 매개변수를 얻기 위해 @RequestParam주석을 과 javax.validation.constraints패키지에서 주석을 사용하여 요청 매개변수를 확인하는 방법을 소개했습니다. 또한 사용자 지정 오류 메시지와 결합된 유효성 검사를 사용하여 데이터 유효성 검사의 유연성을 높이는 방법도 보여줍니다. 이러한 샘플 코드를 통해 Spring Boot 애플리케이션에서 데이터 유효성 검사 @RequestParam에 .

전체 샘플 코드는 다음과 같습니다.

@RestController
public class UserController {
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable @Min(value = 1, message = "id 必须大于等于 1") Long id) {
        // 处理获取用户逻辑
    }

    public class DateRange {
        @NotNull
        @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
        private LocalDate start;

        @NotNull
        @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
        private LocalDate end;

        // getters/setters omitted
    }

    @GetMapping("/users")
    public List<User> getUsers(@Valid DateRange dateRange) {
        // 处理获取用户列表逻辑
    }
}

이 기사가 도움이 되었기를 바랍니다. 읽어주셔서 감사합니다!

추천

출처blog.csdn.net/2302_77835532/article/details/131341713