在我使用Neo4jConfig的Neo4j / Spring Boot应用程序中,我有以下钩子:
@Bean
protected ApplicationListener<BeforeSaveEvent<BaseEntity>> beforeSaveEventApplicationListener() {
return new ApplicationListener<BeforeSaveEvent<BaseEntity>>() {
@Override
public void onApplicationEvent(BeforeSaveEvent<BaseEntity> event) {
BaseEntity entity = event.getEntity();
if (entity.getCreateDate() == null) {
entity.setCreateDate(new Date());
} else {
entity.setUpdateDate(new Date());
}
}
};
}
它与之前版本的Spring完美契合 - 4.1.7.RELEASE
但不适用于最后一个版本4.2.0.RELEASE
我用
SDN 3.4.0.RC1
和Spring Boot 1.2.5.RELEASE
可能是什么原因?
答案 0 :(得分:0)
使用Spring Framework 4.2+,我的问题中的方法必须如下:
@EventListener
public void handleBeforeSaveEvent(BeforeSaveEvent<BaseEntity> event) {
BaseEntity entity = event.getEntity();
if (entity.getCreateDate() == null) {
entity.setCreateDate(new Date());
} else {
entity.setUpdateDate(new Date());
}
}
此处有更多详情:https://spring.io/blog/2015/02/11/better-application-events-in-spring-framework-4-2