Zac*_*ley 17 mongodb bean-validation spring-data-mongodb spring-boot
我有一个非常简单的Spring Boot应用程序,它使用Spring-Data-Mongodb
我想要做的就是设置一个JSR-303验证规则,说明我保存的对象必须有一个用户名.我读到JSR-303被添加到版本1.1中的spring-data-mongodb中,所以我假设当我保存一个对象时它已经过验证,但事实并非如此.
有没有人有一个简单的示例设置,显示它是如何工作的?
我的用户pojo看起来像
public class User {
@Id
private String id;
@NotNull(message = "User Name is compulsory")
private String userName;
private String password;
public User() {}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = PasswordAuthService.hash(password);
}
}
Run Code Online (Sandbox Code Playgroud)
我看到某个地方,如果你在上下文中创建了一个验证器,验证只会启动,所以我尝试更新我的Application类(包含所有配置,看起来像
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
@Bean
public Validator getValidator() {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
return validator;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
Mac*_*iak 33
首先确保在类路径上有JSR-303验证器,例如:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果您使用Java配置,那么要创建2个bean:
@Bean
public ValidatingMongoEventListener validatingMongoEventListener() {
return new ValidatingMongoEventListener(validator());
}
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
Run Code Online (Sandbox Code Playgroud)
瞧!验证现在正在运行.
从 Spring Boot 2.3 开始,必须添加 spring-boot-starter-validation 依赖项pom.xml(对于 Maven):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
不需要声明验证器 bean。
| 归档时间: |
|
| 查看次数: |
9563 次 |
| 最近记录: |