spring3 hibernate4 如何支持EventListener 系统操作日志
1、在spring3.1.0发布版本上是否支持Hibernate 4.X版本的EventListener呢?
在spring3.1.0版本,针对hibernate3 通过查看LocalSessionFactroyBean的源码可以知道,有一个eventListenser的属性来设置EventListeners。但是在hibernate4中,查看LocalSessionFactroyBean源码去不支持EventListener。由于spring3.X 对hibernate4不支持这样的配置。我还是按配置hibernate3一样的方法配置hibernate4导致我浪费了一个上午的时间。hibernate4 改变了注册EventListener的方式。
?
2、hibernate4 注册eventListener的方式
1、通过注解方式(测试通过)
@Componentpublic class HibernateEventWiring {@Autowiredprivate SessionFactory sessionFactory;@Autowiredprivate LogListener logListener;@PostConstructpublic void registerListeners() { EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService( EventListenerRegistry.class); registry.getEventListenerGroup(EventType.POST_INSERT).appendListener(logListener); registry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(logListener);
registry.getEventListenerGroup(EventType.POST_DELETE).appendListener(logListener);
}}
2、通过注解方式(未测试)
参考hibernate4 官方开发文档
http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#registering-listeners-example
?
?