Spring ApplicationListener Neo4j BeforeSaveEvent不适用于Spring 4.2.0.RELEASE

时间:2015-08-12 19:47:19

标签: spring spring-boot spring-data spring-data-neo4j

在我使用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.RC1Spring Boot 1.2.5.RELEASE

可能是什么原因?

1 个答案:

答案 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