What is the method for using validation in Java?

In Java, a variety of technologies and frameworks can be used for validation. Here are some common approaches:

  1. Utilizing Java Bean Validation (JSR 380): Java Bean Validation is a set of standard annotations used for validating JavaBean properties. Annotations can be added to a JavaBean’s properties to define validation rules and then validated using validators. Common annotations include @NotNull, @Size, @Min, @Max, and more. Hibernate Validator and similar implementations can be used to implement Java Bean Validation.

Sample code:

public class Person {
    @NotNull
    @Size(min = 2, max = 30)
    private String name;
    
    @Min(0)
    @Max(100)
    private int age;
    
    // getters and setters
}

// 验证示例
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();

Person person = new Person();
Set<ConstraintViolation<Person>> violations = validator.validate(person);

for (ConstraintViolation<Person> violation : violations) {
    System.out.println(violation.getMessage());
}
  1. With Spring Validation, Spring offers a validation framework that allows for easy validation in Spring applications. The @Valid annotation can be used in the Controller to validate request parameters, while the @Validated annotation can be used in the Service layer to validate method parameters. The BindingResult object can also be used to retrieve validation results and error messages.

Example code:

@RestController
public class UserController {
    @PostMapping("/users")
    public void createUser(@Valid @RequestBody User user, BindingResult result) {
        if (result.hasErrors()) {
            // 处理验证错误
        }
        
        // 处理正常逻辑
    }
}

@Service
public class UserService {
    public void updateUser(@Validated User user) {
        // 方法逻辑
    }
}
  1. Utilize other open-source frameworks: Apart from Hibernate Validator and Spring Validation, there are also other open-source frameworks available for validation, such as Apache Commons Validator and Guava’s Preconditions.

Example code (Apache Commons Validator):

String email = "abc@example.com";

if (EmailValidator.getInstance().isValid(email)) {
    // 邮箱格式正确
} else {
    // 邮箱格式错误
}

Regardless of the method of verification used, it is necessary to choose the appropriate framework and method based on specific needs, and perform verification at the proper location.

bannerAds