我正在Neo4j OGM 2.1.3
使用Spring Boot 1.5.9
在spring数据和neo4j ogm的文档参考中,事件监听器的注册解释如下。
class AddUuidPreSaveEventListener implements EventListener {
void onPreSave(Event event) {
DomainEntity entity = (DomainEntity) event.getObject():
if (entity.getId() == null) {
entity.setUUID(UUID.randomUUID());
}
}
void onPostSave(Event event) {
}
void onPreDelete(Event event) {
}
void onPostDelete(Event event) {
}
EventListener eventListener = new AddUuidPreSaveEventListener();
// register it on an individual session
session.register(eventListener);
// remove it.
session.dispose(eventListener);
// register it across multiple sessions
sessionFactory.register(eventListener);
// remove it.
sessionFactory.deregister(eventListener);
在我的代码中,我找不到获取会话实例的方法。
@SpringBootApplication
@EntityScan("movies.spring.data.neo4j.domain")
public class SampleMovieApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(SampleMovieApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
private static Class<SampleMovieApplication> applicationClass = SampleMovieApplication.class;
}
我使用上面的代码片段运行项目。
我的问题是:如何获取会话实例并使用它来注册事件监听器?。
修改:我的代码是使用GitHub上的this代码示例构建的
答案 0 :(得分:0)
AFAIK如果不手动打开它,则无法访问当前会话。但这与SpringData(Neo4j)的想法不符。
您可以注册EventListener
SessionFactory
注册时可以访问的@SpringBootApplication
public class SdnApplication {
private final SessionFactory sessionFactory;
public SdnApplication(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@PostConstruct
public void registerEventlistener() {
sessionFactory.register(new EventListenerAdapter() {
@Override public void onPreSave(Event event) {
System.out.println("about to save sth");
}
});
}
public static void main(String[] args) {
SpringApplication.run(SdnApplication.class, args);
}
}
,例如你的应用程序配置。
样品:
this.modalTemplate = new ReactiveVar(false);
this.modalData = new ReactiveVar({});
{{> Template.dynamic template=getModalTemplate data=getModalData }}