我一直在尝试将弹簧验证器添加到spring-data-rest项目中.
我跟着并通过以下链接设置"入门"应用程序:http://spring.io/guides/gs/accessing-data-rest/
...现在我正在尝试通过以下文档添加自定义PeopleValidator:http://docs.spring.io/spring-data/rest/docs/2.1.0.RELEASE/reference/html/validation-chapter html的
我的自定义PeopleValidator看起来像
package hello;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
public class PeopleValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return true;
}
@Override
public void validate(Object target, Errors errors) {
errors.reject("DIE");
}
}
Run Code Online (Sandbox Code Playgroud)
...而我的Application.java类现在看起来像这样
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration;
@Configuration
@EnableJpaRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public PeopleValidator beforeCreatePeopleValidator() …Run Code Online (Sandbox Code Playgroud) 我有一个@RepositoryEventHandler设置,并没有因为一些未知的原因被调用.
@Component
@RepositoryEventHandler(User.class)
public class UserEventHandler {
@Autowired
private PasswordCrypto passwordCrypto;
@HandleBeforeSave
public void handleUserSave(User user) {
if (user.getPassword() != null && !"".equals(user.getPassword())) {
user.setPassword(passwordCrypto.encrypt(user.getPassword()));
}
}
@HandleBeforeCreate
public void handleUserCreate(User user) {
user.setPassword(passwordCrypto.encrypt(user.getPassword()));
}
}
Run Code Online (Sandbox Code Playgroud)
存储库:
public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findOneByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)
而我的主要课程:
@SpringBootApplication
@EntityScan("de.ihrig.feuerwehr.hydranet.model")
@EnableJpaRepositories
@ComponentScan({
"somepath",
"somepath including the UserEventHandler"
})
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您提前的帮助,我只是找不到错误.
spring spring-data spring-data-jpa spring-data-rest spring-boot