我有一个非常简单的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);
}
}
我在某个地方看到,只有在上下文中创建了验证器才会触发验证,因此我尝试更新我的Application类(其中包含所有配置)以使其看起来像
如果您在上下文中创建了验证器,则仅启用验证,因此我尝试更新我的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);
}
}