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
하는 샘플 코드입니다 .start
end
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
예외가 발생합니다 .start
end
MethodArgumentNotValidException
요약하다
이 기사에서는 요청 매개변수를 얻기 위해 @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) {
// 处理获取用户列表逻辑
}
}
이 기사가 도움이 되었기를 바랍니다. 읽어주셔서 감사합니다!