`

sping中如何配置拦截器

阅读更多
sping中如何配置拦截器
配置如下
    <bean id="aroundAdvice" class="com.cs.advice.AroundAdvice" ></bean>
    <bean id="beforeAdvice" class="com.cs.advice.BeforeAdvice" ></bean>
   
    <!-- 相当于JDKProxy,不过他能代理任何类的对象 -->
    <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean" >
    	
    	<!-- 以下是JDK动态代理要求的传入的接口 -->
    	 <!-- 第一步:配置接口 -->
    	<property name="proxyInterfaces">
    		<list>
    			<value>com.cs.dao.UserDao</value>
    		</list>
    	</property>
    	 <!--  这是如何配置cglib 方式 cglib方式是spring已经提供的只需要配置即可 能代理任何类  与上面的jdk配置只能二选一
    	<property name="proxyTargetClass" value="true" />
        -->
    	 
    	 <!-- 第二步:配置目标对象 , 及腰拦截的对象是哪个 -->
    	<property name="target">
    		<bean class="com.cs.dao.UserDaoImpl"></bean>
    	</property>    	
    	<!-- 第三步:配置拦截器 , 及使用哪些拦截器 -->
    	<property name="interceptorNames">
    		<list >
    			 <value>aroundAdvice</value>
    		</list>    	
    	</property>
    </bean> 

aroundAdvice的代码如下:(本人觉得此方法较好)

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class AroundAdvice implements MethodInterceptor {
	public Object invoke(MethodInvocation arg0) throws Throwable {
		System.out.println("开启事务");
		Object obj = arg0.proceed() ; // 相当于调用真正的方法
		System.out.println("关闭事务");
		return obj;
	}
}

beforeAdvice的代码如下:(二选一)

import org.springframework.aop.MethodBeforeAdvice;
public class BeforeAdvice implements MethodBeforeAdvice {
	public void before(Method method, Object[] args, Object target)
			throws Throwable {	 
	System.out.println("日志记录:" + method.getName() + " is inteceptor");
        //在方法调用之前做的事情
	}
}
测试类:
public static void main(String[] args) {
		
	    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml") ;
	    
	    UserDao uDao = (UserDao)ctx.getBean("proxy") ; //如果配置的是cglib方式 ,则能代理任何类
	    
	    uDao.addUser(new User()) ;
	}
分享到:
评论

相关推荐

    spring boot 登录拦截器

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

    spring配置JSON拦截器VIEW

    标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...

    Spring拦截器,高级参数绑定

    下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建一个Spring拦截器需要实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类。以下是一个简单的拦截...

    java + spring boot +jpa 拦截器分库分表demo

    在拦截器中,我们需要根据业务规则(例如:用户ID、订单号等)计算出目标库和表的索引,然后修改SQL语句,使其指向正确的数据库和表。这里可能需要用到第三方的分库分表中间件,如MyCat或ShardingSphere,它们提供了...

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

    在提供的压缩包文件"wbInter"中,可能包含了一个示例或模板,用于演示如何在CXF3.0和Spring3.2环境中创建和配置自定义拦截器。通过学习和理解这些文件,你可以更深入地了解如何在实际项目中应用这一技术。 总之,...

    spring MVC(新增拦截器demo)

    在本次的“spring MVC(新增拦截器demo)”项目中,我们将重点探讨如何在Spring MVC中添加拦截器来实现对请求的预处理和后处理。 拦截器在Spring MVC中扮演着关键的角色,它们可以用来执行一些全局性的任务,如日志...

    Spring拦截器示例

    而Spring拦截器则是实现AOP的一种方式,它类似于Java的Servlet过滤器,可以在方法调用前后执行自定义的操作。 AOP拦截器在Spring中主要通过`HandlerInterceptor`接口或者`@AspectJ`注解来实现。下面我们将详细探讨...

    Flex-Spring拦截器

    在深入研究Flex-Spring拦截器时,理解Spring AOP的核心概念和AMF的工作原理是至关重要的。通过这样的集成,开发者可以在保持Flex客户端的灵活性和交互性的同时,利用Spring的强大功能来处理复杂的业务逻辑和系统管理...

    spring mvc xml配置拦截器

    通过上述步骤,我们可以成功地在Spring MVC中配置XML拦截器,实现对特定请求的预处理和后处理。这不仅提高了代码的可维护性,也使得业务逻辑更加清晰。在实际项目中,合理使用拦截器可以极大地提升应用的功能性和...

    自己spring boot 拦截器

    在Spring Boot应用中,拦截器(Interceptor)是Spring MVC框架的一部分,用于在请求处理之前、之后或在实际处理过程中执行一些预定义的任务。这通常包括权限检查、日志记录、性能监控等。自定义拦截器可以帮助我们更...

    struts2整合spring实现拦截器

    在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...

    SpringBoot的拦截器

    2. 配置拦截器:接下来,我们需要在Spring Boot的配置类中注册这个拦截器,让它生效。可以通过实现`WebMvcConfigurer`接口并覆盖`addInterceptors()`方法来完成。 ```java @Configuration public class ...

    Spring Boot 拦截器+kibana 配置.zip

    Spring Boot 拦截器 各项日志 通过kibana具体查询分析 Advanced Settings [7.2.0] 综合分析 定时任务执行日志 数据同步日志 用户访问操作日志 异常日志 内存日志 Spring逻辑参数执行日志 SQL...

    spring-boot添加 拦截器

    至此,我们就完成了Spring Boot中登录拦截器的配置。当用户试图访问受保护的URL时,拦截器会先检查用户是否已登录,未登录则重定向到登录页面。这种方式可以帮助我们实现细粒度的权限控制,确保只有合法用户才能访问...

    Spring Controller拦截器配置

    - **preHandle**:这是拦截器中最关键的方法,它决定了是否允许继续处理请求。如果返回`false`,则会中断请求处理流程,并执行后续的`afterCompletion()`方法;如果返回`true`,则会继续处理请求。 - **postHandle**...

    spring拦截器的简单例子

    在这个简单的例子中,我们将探讨如何在 Spring 中配置和使用拦截器。 首先,我们需要创建一个自定义的拦截器类,该类需要实现 `HandlerInterceptor` 接口。这个接口提供了三个方法:`preHandle()`、`postHandle()` ...

    使用CGLIB模拟spring的拦截器

    在`intercept`方法中,我们实现了类似Spring拦截器的功能,调用`preHandle`和`postHandle`方法,并根据`preHandle`的结果决定是否执行目标方法。 最后,`afterCompletion`方法的调用通常需要手动管理,因为它涉及到...

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    spring boot 拦截器拦截/Filter 过滤session案例

    在Spring Boot中,我们可以使用`@WebFilter`注解或在`web.xml`中配置过滤器。过滤器通常用于数据转换、字符编码设置、安全过滤等。对于session管理,过滤器也可以检查session中的登录信息,如果不存在,就阻止请求的...

    springMVC拦截器项目

    在这个项目中,你可以了解到如何配置和使用拦截器,以及如何将它们集成到 SpringMVC 应用中。 1. **SpringMVC 概述**: SpringMVC 提供了一个模型-视图-控制器架构,用于处理 HTTP 请求和响应。它简化了 MVC 应用...

Global site tag (gtag.js) - Google Analytics