Spring AOP与struts1.x,struts2.x的结合

本文探讨了如何在Struts1.x和Struts2.x中结合Spring AOP实现权限拦截。在Struts1.x中,通过自定义DelegatingRequestProcessor并集成Spring,覆盖process方法进行权限判断。而在Struts2.x中,利用AOP的AspectJ自动代理,配置proxy-target-class为true以确保所有Action方法被拦截,同时需要注意排除getter和setter方法。此外,也提到了不使用Spring AOP,直接在Struts中编写Interceptor进行权限校验的方案。
摘要由CSDN通过智能技术生成
spring AOP用于做权限拦截是一个很好的选择.spring AOP其拦截的原理就是生成目标类的代理类对目标类应用通知(advice)
通知类型有:
前置通知
后置通知
最终通知
例外通知
环绕通知


由各种通知的特点可知,只有环绕通知才适用于对目标类方法实施拦截。
spring AOP生成代理类是通过JDK提供的Proxy这个动态代理类或CGLib生成动态代理,缺省情况下,如果目标类实现了某个或某些接口,spring会选择JDK提供的Proxy生成代理,如果目标类没有实现接口则会使用CGLib通过继承自目标类生成目标类的子类生成代理类。对于没有实现接口的目标类则只能使用CGLib生成代理,JDK提供的Proxy是无能为力的,因为Proxy必须提供接口,但对于实现了接口的目标类,使用哪种方式生成代理类是可配置的。


在struts1.x中我们是通过继承org.apache.struts.action.Action来定义我们的Action,因为这是个类继承自Object,没有实现任何接口,也就是我们自己写的Action也没有实现任何接口,这时就是使用CGLib生成代理类。如果在struts1.x中,定义自己的Action的时候最多的就是继承org.apache.struts.action.Action和org.apache.struts.actions.DispatchAction
,当继承DispatchAction的时候你会发现spring的AOP并不能为Action应用上通知(advice),但继承自Action的时候却
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值