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

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的时候却
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值