sping中如何配置拦截器

本文介绍如何在 Spring 中配置 AOP 拦截器,包括使用 BeforeAdvice 和 AroundAdvice 进行方法前后的操作。通过具体的代码示例展示了如何创建和配置拦截器,以及如何设置代理以实现特定的业务逻辑。
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()) ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值