`

拦截器

阅读更多
拦截器:老的拦截器
配置:
第一步:自定义的拦截类
public class MyInterceptor extends EmptyInterceptor {
	public boolean onSave(Object entity, Serializable id, Object[] state,
			String[] propertyNames, Type[] types) {
		if (entity instanceof Team) {
			Team t = (Team)entity ;
			System.out.println(t.getName() + " --- is to be saved ... ");
		}		
		return false ;
	}
}
第二步:
配置到项目中去  由于拦截器是针对所有的操作 ,所以不应该在session上
而应该在sessionFactory 上配置
   步骤:
  
static {
		sessionFactory = new Configuration().configure().setInterceptor(new MyInterceptor()).buildSessionFactory() ;
	}
缺陷:不够灵活 ,要修改代码 所以一般不这样用 , 建议使用hibernate中的时间监听

14.
拦截器:hibiscus 3版本中的拦截器
配置:
第一步:自定义的拦截类
public class MyListener implements SaveOrUpdateEventListener {
     
	public void onSaveOrUpdate(SaveOrUpdateEvent event)
			throws HibernateException {
		if (event.getObject() 	instanceof com.cs.Team ){
			Team t = (Team)event.getObject() ;
			System.out.println("Team object is saved" + t.getId() + " " + t.getName());
		}
	}
}
第二步:
配置到项目中去  由于拦截器是针对所有的操作 ,所以不应该在session上
而应该在sessionFactory 上配置
   步骤:
  <event type="save">
		<listener class="org.hibernate.event.def.DefaultSaveEventListener" />
		<listener class="com.cs.util.MyListener" />	
   </event>
   有点:够灵活 ,添加新的事件 ,只需要修改配置 ,不需要修改代码
  
   注意事项:<listener class="org.hibernate.event.def.DefaultSaveEventListener" />为
   hibernate的默认事件 ,如果要添加事件,则不需要保留该事件,另外事件顺序存在先后关系
   比如说上面的例子中,如果调换顺序 ,则在拦截器中得不到要保存对象的id ,因为还没来得及保存
   测试: 既然如此 ,如果把 native 的id 改为 uuid 由hibernate 来生成 ,是否可以解决呢?
   答案: 不可以 ,经测试发现 ,由于hibernate的实现 , uuid 也是在DefaultSaveEventListener监听器
   中产生的 .

   何时需要用到拦截器:
      一般来说 ,用的最多的就是做日志
分享到:
评论

相关推荐

    SpringBoot拦截器原理解析及使用方法

    在SpringBoot框架中,拦截器是一个非常重要的组件,它能够在请求到达控制器(Controller)之前或者之后对请求进行拦截,以完成一些预处理或后处理操作。拦截器通常用于权限检查、日志记录、性能监控等场景。 拦截器...

    CXF3.0+Spring3.2 自定义拦截器

    1. **CXF拦截器基础**:CXF的拦截器是基于JAX-WS规范的Handler Chain模型,分为In-bound(请求进来时触发)和Out-bound(响应出去时触发)两类。拦截器可以通过在服务配置中指定,或者通过编程方式动态添加。 2. **...

    WebService之自定义拦截器(server+client)

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService之自定义拦截器的实现,无论是对于服务器端还是客户端,都是为了增强服务的功能性和安全性。本文将深入探讨自定义拦截器的概念、作用以及...

    MyBatis拦截器:给参数对象属性赋值的实例

    MyBatis拦截器是MyBatis框架中的一种插件机制,允许用户自定义代码来扩展MyBatis的功能。在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为...

    mybatis拦截器实现通用权限字段添加的方法

    MyBatis拦截器实现通用权限字段添加的方法 MyBatis拦截器是一种非常实用的技术,可以用来实现各种复杂的数据库操作。本文将详细介绍如何使用MyBatis拦截器来实现通用权限字段添加,达到灵活、可靠、可维护的数据库...

    uni-app 请求拦截器

    【uni-app请求拦截器】是基于uni-app框架实现的一种机制,它允许开发者在发送网络请求前和接收到响应后执行自定义的操作。这种机制对于统一处理请求头、数据格式、错误处理以及添加全局的请求前后的逻辑非常有用,极...

    mybatis 分页拦截器及拦截器配置

    MyBatis 分页拦截器是实现数据库查询分页效果的一种高效解决方案。在传统的SQL查询中,我们通常需要手动编写分页语句,但这容易出错且不易维护。通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper...

    请求拦截器和响应拦截器.docx

    请求拦截器和响应拦截器 请求拦截器和响应拦截器是 Axios 库中提供的一种机制,用于在发送请求之前和响应数据返回之前对数据进行处理。下面是对这两个概念的详细解释: 请求拦截器 请求拦截器是指在发送请求之前...

    拦截器和过滤器的区别

    ### 拦截器与过滤器的区别 #### 一、概念简介 在现代软件开发过程中,特别是Web应用程序中,为了实现灵活高效的业务逻辑处理及控制流管理,常常会使用到两种设计模式:拦截器(Interceptor)与过滤器(Filter)。...

    拦截器解决中文乱码问题

    "拦截器解决中文乱码问题"这个主题,主要关注的是如何通过使用拦截器(Interceptor)这一技术手段来预防或解决乱码现象。拦截器是Spring MVC框架中的一个重要组件,它可以对HTTP请求进行预处理和后处理,从而在数据...

    spring boot 登录拦截器

    在Spring Boot应用中,登录拦截器是一个至关重要的组件,它用于保护特定的Web资源,确保只有经过身份验证的用户才能访问。Spring Boot结合了Spring MVC框架,提供了方便的方式来实现这样的拦截器。本篇文章将深入...

    理解拦截器用于在某个方法或字段被访

    【理解拦截器】 拦截器是面向切面编程(AOP)的一个重要概念,它允许在方法或字段被访问之前或之后插入额外的操作。这提供了一种灵活的方式,可以在不修改原有代码的情况下,增强或控制程序的行为。在Web开发框架如...

    Struts2学习案例(拦截器)

    拦截器通过配置文件或者注解与Action关联,形成一个拦截器栈,每个Action的执行都会经过这个栈中的每个拦截器。 JPA(Java Persistence API)是Java平台上的对象关系映射(ORM)标准,用于处理数据库操作。在这个...

    Struts2拦截器及其用法详细说明

    - XML配置:在`struts.xml`文件中,使用`&lt;interceptor&gt;`元素定义拦截器,`&lt;interceptor-stack&gt;`元素组合多个拦截器,`&lt;package&gt;`元素下的`interceptors`属性指定拦截器栈。 ```xml &lt;!-- 可以添加其他内置或...

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

    在某些场景下,我们可能需要对SQL进行动态修改或者实现分页功能,这时MyBatis的拦截器机制就显得尤为重要。拦截器允许我们在SQL执行前后插入自定义的行为,例如添加分页条件、修改SQL参数等。 在"MyBatis拦截器分页...

    springMVC拦截器项目

    SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    然而,在使用拦截器时,可能会遇到拦截器误拦截静态资源文件(如js、css、图片等)的问题。这不仅会影响网页的加载速度,还可能导致页面呈现异常。 在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的...

    SpringBoot的拦截器

    Spring Boot提供了对Spring MVC的集成,因此我们可以利用Spring MVC的拦截器机制来实现这些功能。 首先,让我们了解一下Spring Boot中创建拦截器的基本步骤: 1. 创建自定义拦截器类:你需要创建一个实现了`...

    解决Vue在封装了Axios后手动刷新页面拦截器无效的问题

    然而,在封装Axios后,可能会遇到在手动刷新页面时拦截器失效的问题。本文将详细解析此问题的产生原因以及解决方法,并探讨在不同文件中封装Axios及挂载Vue实例对拦截器执行的影响。 ### Vue在封装Axios后的手动...

    CXF使用EndpointImpl发布WebService加入拦截器

    拦截器在CXF中的工作原理基于JAX-WS规范,可以分为两种类型:`InInterceptors`(入站拦截器)和`OutInterceptors`(出站拦截器)。入站拦截器处理从客户端到服务器的消息,而出站拦截器则处理从服务器返回到客户端的...

Global site tag (gtag.js) - Google Analytics