Ben*_*nny 7 spring spring-data spring-data-jpa spring-data-rest spring-boot
我有一个@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)
感谢您提前的帮助,我只是找不到错误.
可能有几件事正在发生。
您的存储库没有注释 w/ @RestResource,但我猜这只是一个疏忽。
我猜这些注释是正确的,并且您正在通过单元测试来测试它,其入口点不通过 REST API。唯一handlers捕获通过该向量传入的 Repo 事件。
如果您想捕获任何存储库事件,无论入口点如何,那么您需要使用AbstractRepositoryEventListener
Spring Data Rest Events 文档对此进行了介绍。另请参阅在 spring boot 中侦听存储库事件。
| 归档时间: |
|
| 查看次数: |
3028 次 |
| 最近记录: |