Struts2的action 继承actionsupport(该类实现了若干接口) 导致 在默认的情况下spring的AOP在生成该action的代理类时,使用的是JAVA的动态代理,而不是CGLIB。
这样就会出现一个问题,action中的一些方法(如set方法,get方法)在对应的代理类中不存在。执行报错。请问这个问题该如何解决。
----------------------------------------------------------------------------------------
我觉得可以强制指定 以CGLIB的方式生成action的代理类。是过了好像不行。我的目的是用aop的方式,为项目中的所有类的执行做日志。用的是after
这样就会出现一个问题,action中的一些方法(如set方法,get方法)在对应的代理类中不存在。执行报错。请问这个问题该如何解决。
----------------------------------------------------------------------------------------
我觉得可以强制指定 以CGLIB的方式生成action的代理类。是过了好像不行。我的目的是用aop的方式,为项目中的所有类的执行做日志。用的是after
解决方案 »
- java解析html取table里面的内容,
- jsp<img>标签中图片名称为中文无法显示图片的问题
- 懂XML,请进......
- hibernate SQLQuery 获取不带参数的sql
- hidden是如何使用的
- 请各位j2EE高手指点一下
- Spring中获取properties文件消息时,汉字参数变成????的问题
- 请教:关于内存泄漏问题的检测方案
- Java程序往excel文件输出图表(柱形图),哪位有这方面经验?
- Spring mvc静态资源加载不到
- import java.awt.*;写在Java程序最前面是什么意思啊?(小弟初学)
- struts2.x和struts1.x哪一个的应用更广一些?
你让你自己新建的action实现action接口就行了啊
可以继承actionSupport。是我在配置文件里写错了。
但我还是有个疑问,在个一个<aop:config>中,如何指定不同的类用不同的代理方法。
比如说,action我用CGLIB,其他的我用Java的动态代理。
加入 cglib-nodep.jar
加入 <aop:aspectj-autoproxy proxy-target-class="true"/>强制使用cglib 3 如果目标对象没有实现了接口,必须采用cglib库,spring会在jdk动态代理和cglib之间转换
jdk动态代理和cglib动态代理(字节码生成)区别
* jdk动态代理只能对实现了接口的类生成代理,而不能针对没有实现接口的类代理
* cglib是针对类实现代理、主要是对指定的类生成一个子类,覆盖了其中的方法
因为是继承。所以该类或方法最好不要声明成final,导致无法继承父类生成代理类