`

二十四 拦截器与监听器

 
阅读更多
在保存 更新等操作的前后可以追加一些操作,我们把这类操作放在时间的监听器里,
Hibernate3.0以前使用拦截器来实现的,现在多数使用监听器来实现。

比如我们对保存Users进行监听

SaveListener.java

view plaincopy to clipboardprint?
01.package listener;   
02.  
03.import org.hibernate.HibernateException;   
04.import org.hibernate.event.SaveOrUpdateEvent;   
05.import org.hibernate.event.SaveOrUpdateEventListener;   
06.  
07.import domain.Users;   
08.  
09.public class SaveListener implements SaveOrUpdateEventListener {   
10.  
11.    @Override  
12.    public void onSaveOrUpdate(SaveOrUpdateEvent event)   
13.            throws HibernateException {   
14.        if(event.getObject() instanceof Users){   
15.            Users user = (Users)event.getObject();   
16.            System.out.println("---"+user.getName());   
17.        }   
18.    }   
19.  
20.}  
package listener;

import org.hibernate.HibernateException;
import org.hibernate.event.SaveOrUpdateEvent;
import org.hibernate.event.SaveOrUpdateEventListener;

import domain.Users;

public class SaveListener implements SaveOrUpdateEventListener {

	@Override
	public void onSaveOrUpdate(SaveOrUpdateEvent event)
			throws HibernateException {
		if(event.getObject() instanceof Users){
			Users user = (Users)event.getObject();
			System.out.println("---"+user.getName());
		}
	}

}
 

hibernate.cfg.xml中加入

view plaincopy to clipboardprint?
01.<!-- 监听器 -->  
02.        <event type="save">  
03.            <listener class="listener.SaveListener"/>  
04.        </event>  
<!-- 监听器 -->
		<event type="save">
			<listener class="listener.SaveListener"/>
		</event> 

运行添加Users操作后,打印出---pf1,说明监听器成功运行,但是没有sql语句,查看数据库,没有插入数据。

因为我们写的监听器取代了默认的保存监听器

修改一下

view plaincopy to clipboardprint?
01.<!-- 监听器 -->  
02.<event type="save">  
03.    <listener class="listener.SaveListener"/>  
04.    <listener class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener"/>  
05.</event>  
		<!-- 监听器 -->
		<event type="save">
			<listener class="listener.SaveListener"/>
			<listener class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener"/>
		</event> 

再执行就有插入操作了,再提醒一点,监听器执行的顺序和配置时候的先后顺序一致。


end !

分享到:
评论

相关推荐

    MyBatis拦截器分页与动态修改SQL及其参数值

    在"MyBatis拦截器分页与动态修改SQL及其参数值"的主题中,我们可以深入理解以下几个关键知识点: 1. **MyBatis拦截器**:MyBatis提供了一种插件机制,即拦截器(Interceptor),它基于Java的动态代理,可以在SQL...

    jsp实验5:监听器拦截器的使用

    在JavaServer Pages (JSP) 开发中,监听器和拦截器是两种非常重要的组件,它们可以帮助我们实现更高效、更灵活的Web应用程序管理。在这个名为"jsp实验5:监听器拦截器的使用"的实验中,我们将探讨如何利用这些技术来...

    Mybatis分页拦截器

    在Mybatis中,拦截器扮演着插件的角色,可以监听并修改Mybatis执行过程中的某些行为。本话题将深入探讨Mybatis分页拦截器的工作原理、实现方式以及在不同版本(如mybatis-3.1.1和mybatis-3.0.4)下的兼容性。 首先...

    拦截器和控制器的区别

    拦截器和过滤器的区别 1、拦截器基于动态代理 , 过滤器基于函数回调 2、拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器 3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求...

    弹窗广告拦截器

    1. **URL截获**:拦截器首先通过监听网络请求,对网页加载过程中的每个URL进行扫描。当发现与广告相关的URL时,会采取相应的措施,防止广告内容的加载。 2. **屏蔽库**:屏蔽库是拦截器的核心组成部分,它包含了...

    网络封包拦截器1.0

    在"网络封包拦截器1.0"中,用户可以选择不同的数值系统(二进制、十进制、十六进制)来查看数据包内容。这种灵活性使得用户可以根据自身需求来解读数据,例如,对于计算机硬件开发者,二进制表示可能更为直观;而...

    封包拦截器MiniSniffer 1.0

    封包拦截器MiniSniffer 1.0是一款专为网络数据包捕获和分析设计的强大工具。它的核心功能在于无需DLL注入就能实现对特定IP地址或特定端口的封包拦截,这为网络监控、故障排查和安全审计提供了极大的便利。 一、封包...

    struts2拦截器及监听器示例demo

    默认登录页面 http://localhost:8080/Struts_ljq ...登录成功页面有add,delete,modify方法,配置有不同拦截,在后台看拦截信息。 有全局拦截器配置和方法拦截,及监听器简单运用, 仅新手学习demo

    通过Mybatis拦截器自动定位慢SQL并记录日志

    为了有效地管理和解决这个问题,我们可以利用Mybatis的拦截器机制来自动检测并记录慢SQL。下面我们将详细介绍如何通过Mybatis拦截器实现这一功能。 首先,了解Mybatis拦截器的基本概念。Mybatis拦截器(Interceptor...

    websocket多人群聊Demo(主要演示拦截器和获取拦截器里的值).rar

    服务端代码可能会定义WebSocket服务器,设置监听端口,注册WebSocket事件处理函数(如onopen、onmessage、onclose、onerror),并实现拦截器逻辑。客户端代码则可能使用WebSocket对象创建连接,发送和接收消息,并...

    java过滤器、监听器拦截器原理个人总结.pdf

    Java 过滤器、监听器拦截器原理个人总结 Java 过滤器是 Java Servlet 规范中的一种机制,用于对请求和响应进行过滤。过滤器可以实现用户身份验证、日志记录、数据压缩等功能。创建一个过滤器需要两个步骤:创建 ...

    SpringBoot实现拦截器、过滤器、监听器过程解析

    SpringBoot 实现拦截器、过滤器、监听器过程解析 SpringBoot 框架中提供了多种方式来拦截和过滤请求,包括拦截器、过滤器和监听器。以下是对这三种机制的详细解析: 一、拦截器 在 SpringBoot 中,拦截器是通过...

    ssh最新框架搭建,加入拦截器

    3. 配置Web应用的web.xml文件,设置过滤器和监听器。 4. 创建并配置Struts2的核心配置文件struts.xml,定义Action、结果类型和拦截器。 5. 实现业务逻辑,包括Action类、Service接口和实现、DAO接口和实现。 6. 配置...

    浅析JAVA中过滤器、监听器、拦截器的区别

    与过滤器和监听器不同,拦截器更多地用于框架层面上,如Spring、Hibernate、Struts2等。拦截器的作用是拦截框架中的方法调用或Web请求,并在方法或请求执行前后执行特定的代码逻辑。拦截器可以在配置文件中声明,也...

    Struts2 拦截结果监听器(三十)

    在"Struts2 拦截结果监听器(三十)"这个主题中,我们将深入探讨Struts2的拦截器机制,特别是与拦截结果相关的监听器。 拦截器是Struts2的核心组件,它们按照预定义的顺序组成一个拦截器栈,每个拦截器在处理请求时...

    Android 短信拦截器

    这个"Android 短信拦截器"可能是一个示例项目,展示了如何在Android 4.0.3(Ice Cream Sandwich)版本上实现短信监听功能。以下是关于这个主题的详细知识: 1. **BroadcastReceiver**: 短信拦截的核心是...

    学习常用知识(java,sql,oracle,ejb,ssh,struts,xml,监听器,拦截器,过滤器)

    在IT领域,掌握Java、SQL、Oracle、EJB、SSH、Struts、XML以及监听器、拦截器和过滤器等技术是至关重要的。这些技术涵盖了Web应用开发的多个层面,对于初学者而言,理解并熟练运用它们能为职业生涯打下坚实的基础。 ...

    过滤器,监听,拦截器的区分和作用

    过滤器,拦截器,监听的区别和作用,确切的说在什么情况下用哪种技术供大家学习。

    网络抓包拦截器

    网络抓包拦截器的工作原理是利用操作系统提供的网络接口,如Windows的WinPcap或Linux的libpcap库,监听网络流量。当数据包通过网络接口时,拦截器会捕获这些包,并提供给用户查看。常见的抓包工具如Wireshark,可以...

    Java中的拦截器、过滤器、监听器用法详解

    Java中的拦截器、过滤器、监听器用法详解 Java中的拦截器、过滤器、监听器是三个重要的概念,它们在Java Web开发中扮演着非常重要的角色。本文将详细介绍Java中的拦截器、过滤器、监听器的用法,包括它们的功能、...

Global site tag (gtag.js) - Google Analytics