머리말
assert: Assertion은 프로그램을 디버그하는 데 사용되는 Java의 예약어이며 다음과 같이 논리 연산 표현식이 뒤따릅니다.
int a = 0, b = 1,
assert a == 0 && b == 0,
사용 방법: javac는 소스 파일을 컴파일한 다음 java -ea 클래스 파일 이름을 컴파일합니다.
springboot에서는 spring이 제공하는 Assert 클래스의 메소드를 사용하여 프런트 엔드에서 매개변수를 확인할 수 있습니다.
Assert assertion은 기본적으로 기존의 if 판단을 대체하고 비즈니스 매개변수 검증을 위한 코드 줄 수를 줄이며 프로그램 가독성을 향상시킵니다.
@Validated, @Valid 비교 및 자세한 사용법
Validator 프레임워크는 이전에 도입되었지만 여전히 Assert가 필요합니까?
Validator는 매개변수 자체의 데이터 검증만 해결하고 매개변수와 비즈니스 데이터 간의 검증은 해결할 수 없습니다.
예시:
/**
* Validator只解决了参数自身的数据校验,解决不了参数和业务数据之间校验
*
* @param
* @return
*/
@PostMapping("/testWithAssert")
public void testWithAssert(@RequestParam("artisanId") String artisanId) {
Artisan artisan = artisanDao.selectArtisanReturnNull(artisanId);
Assert.notNull(artisan, "用户不存在(Assert抛出)");
}
Assert 코드는 더 우아하고 간결하며 동일한 효과를 얻을 수 있습니다.
Assert의 방법은 무엇입니까
개체 및 유형 어설션
기능 | 설명하다 |
---|---|
notNull() | 객체가 null이 아니라고 가정 |
isNull() | 개체가 null인지 확인 |
isInstanceOf() | 개체가 다른 특정 유형의 인스턴스여야 하는지 확인합니다. |
isAssignable() | 유형 확인 |
텍스트 주장
기능 | 설명하다 |
---|---|
길이() | 문자열이 하나 이상의 공백을 포함하는 빈 문자열이 아닌지 확인하려면 hasLength() 메서드를 사용할 수 있습니다. |
hasText() | 검사 조건을 강화하고 문자열에 공백이 아닌 문자가 하나 이상 포함되어 있으면 hasText() 메서드를 사용할 수 있습니다. |
포함되어 있지 않다() | 검사 매개변수에 특정 하위 문자열이 포함되어 있지 않습니다. |
논리적 주장
기능 | 설명하다 |
---|---|
사실이다() | 조건이 거짓이면 IllegalArgumentException을 던집니다. |
상태() | 이 메서드는 isTrue와 동일하지만 IllegalStateException이 발생합니다. |
컬렉션 및 맵 어설션
기능 | 설명하다 |
---|---|
수집 신청 메모Empty() | 컬렉션이 null이 아니며 하나 이상의 요소가 포함되어 있습니다. |
지도 응용 프로그램 noteEmpty() | 맵이 null이 아니고 하나 이상의 항목(키, 값 키-값 쌍)이 포함되어 있는지 확인합니다. |
배열 주장
기능 | 설명하다 |
---|---|
notEmpty() | 배열이 null이 아니며 하나 이상의 요소가 포함되어 있는지 확인할 수 있습니다. |
noNullElements() | 배열에 null 요소가 포함되어 있지 않은지 확인하십시오. |