SpringBoot 매개변수 검증 Assert 사용

머리말

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 요소가 포함되어 있지 않은지 확인하십시오.

추천

출처blog.csdn.net/liuerchong/article/details/123941602