Spring AOP 拦截Action出现空异常的解决方法

问题描述:

我在action中的方法execute切入了一个方法,使得运行这个方法就执行其他的程序

但是却execute里面却不能获得属性的值,属性已经提供了get和set方法。

 

取消AOP拦截,action正常。

原来在ssh整合中,是由Spring来管理的。它会按照jdk默认接口的方式去代理对象,由于Action没有父类实现的接口方法,因此就会报错。

解决方法有2:

1,去掉action的 继承。即实现了别的接口的类 ,如ActionSupport等。当然这个方法不符合我们的初衷

2,在aop中加入如下代码

proxy-target-class="true"


既:<aop:aspectj-autoproxy proxy-target-class="true"/>

proxy-target-class="treu"  表示基于类的代理将起作用基于类的代理将起作用,需要cglib库

proxy-target-class="false"  或者这个属性被神略,表示基于接口的代理模式

爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img