`
shusanzhan
  • 浏览: 35075 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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、通过注解方式(测试通过

@Component
public class HibernateEventWiring {

@Autowired
private SessionFactory sessionFactory;

@Autowired
private LogListener logListener;

@PostConstruct
public 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

 

 

分享到:
评论
1 楼 walle1027 2015-04-14  
  感谢,正式需要的

相关推荐

    JPA + Hibernate 3 CRUD操作历史审计日志的解决方案

    Hibernate提供了一些预定义的事件,比如`PreInsertEvent`、`PreUpdateEvent`等,我们可以通过实现`EventListener`接口并注册到SessionFactory来监听这些事件。当特定事件触发时,我们的监听器会接收到事件对象,从中...

    spring-spring-framework-4.3.24.RELEASE.zip

    3. **数据访问集成**:Spring支持多种数据访问技术,如JDBC、ORM(Hibernate、MyBatis等)和OXM(Object-XML Mapping)。在`org.springframework.jdbc`和`org.springframework.orm`中,我们可以看到Spring如何提供...

    spring源码可导入eclipse版本 第四部分

    4. **数据访问集成**:Spring提供了对各种数据库的支持,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis。在`org.springframework.jdbc`和`org.springframework.orm`包中,可以探索Spring如何...

    《精通Spring 2.x-企业应用开发详解》chapter17

    10. **Spring的事件机制**:Spring的ApplicationEvent和EventListener可以用于实现组件间的通信,理解这一机制并学会如何在实际项目中应用,能提升应用的响应能力和模块化程度。 以上是根据标题和描述推测的Spring ...

    Spring 开发参考手册

    3. **数据访问**: 支持 JDBC、Hibernate、JPA 等多种数据访问技术。 4. **测试**: 提供了强大的支持工具,便于单元测试和集成测试。 5. **微服务架构**: 可以用于构建微服务架构中的服务发现、配置管理等功能。 ###...

    spring源码分析

    - Spring支持多种数据访问技术,如JDBC、Hibernate、MyBatis等。源码中,`JdbcTemplate`、`HibernateTemplate`等提供了一致的数据库操作API,降低了数据访问的复杂性。 6. **Spring Boot** - Spring Boot简化了...

    spring源码

    - Spring支持JDBC、ORM(Hibernate、MyBatis等)框架的集成,源码中可看到Spring如何封装数据库操作,提供统一的事务管理。 10. **Spring MVC** - Spring MVC是Spring提供的Web层解决方案,包括`...

    ssh框架报错分析集合

    5. JSF+Spring+Hibernate整合时的异常,如`Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener`,这通常意味着在应用初始化阶段,...

    javaweb各种框架组合案例(四):maven+spring+spr….docx

    案例中出现了一个典型的失败场景,主要表现为控制台显示的错误信息:“Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener”。...

    snaker源码

    5. **监听器(Listener)**: 可以自定义监听器来实现特定的行为,如日志记录、通知发送等,这些监听器会在流程运行的特定时刻被调用。 6. **API 使用**: Snaker 提供丰富的 Java API 供开发者在代码中控制流程,如...

    框架集合错误解决方案

    Exceptions sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating...

    Spring:Spring源码阅读

    7. **事件监听(Event Handling)**:Spring提供了一个事件模型,允许应用程序组件之间进行异步通信,通过ApplicationEvent和ApplicationListener接口实现。 8. **数据访问集成**:Spring支持多种数据访问技术,...

    推模式的研究

    4. 通过源码分析,解释相关工具或框架如何支持推模式,如Spring的ApplicationEvent和EventListener。 5. 在Web应用中,如何通过Ajax或其他前端技术与后端推模式结合,实现用户界面的实时更新。 6. 实际项目中的最佳...

    activiti源码分析

    命令模式是一种行为设计模式,允许将请求封装成对象,从而使用不同的请求、队列或者日志请求来参数化其他对象,也可以支持可撤销的操作。 命令模式的核心是命令对象(Command),它包含执行特定操作所需的信息。在...

    学习JAVA的一些心得

    学习Servlet容器、Servlet生命周期、部署方式,以及Filter和EventListener的使用。JSP部分包括表达式、脚本片段和声明的使用,以及JSP内置对象的访问。处理用户输入时,了解HTTP的GET和POST方法以及表单数据的读取。...

Global site tag (gtag.js) - Google Analytics