TA的每日心情 衰 2021-2-2 11:21
签到天数: 36 天
[LV.5]常住居民I
做项目的时候,由于要用到在struts 2的Action类中利用spring 的AOP来实现记录操作日志,
2 S. Q, f- U/ @ 6 h2 v/ k( q9 O1 x9 L. J
在Action里面的方法中加上自定义annotation来实现记录操作功能,7 t' Y- m, t0 @3 k# x
- s- }7 }, {3 S8 i: o) t, ] 运行的时候页面提示NoSuchMethodException when Aspec,3 z4 _1 |- y6 u/ B/ p0 q
o: \, D$ l" h( P& F x, h1 j
网上说是Action继承了ActionSupport导致的,
" v) l- s4 k5 v! r4 _7 ?$ R% N4 y
. B+ i. |( O: |3 ~/ t5 m/ R 后来在一个英文网站上找到了解决的方法,
/ ~& S/ p. g- p0 Y 6 O" I8 }, H7 M/ b3 g! k
只要在Spring的配置文件applicationContext中的<aop:aspectj-autoproxy/>改为<aop:aspectj-autoproxy proxy-target-class="true"/>就可以了。" l3 c/ f/ D- T9 W
- i3 `' z! z) h
' |" Y2 x8 s) p0 c7 O( C3 A' V# a1 q
- x9 c6 R; Q/ f' n) Y' h, b 第一步:
3 F2 |" [9 P! _( x. p ! O4 ~. s' q9 e9 B( D3 g( r; h
在struts2的配置文件里加上以下一句:/ [" g; V7 H; b0 y
& l' u" w$ b ?9 q
//让struts2始终先考虑spring的自动装箱* R. [4 j5 N! U1 Z6 b: X/ b
<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true" />
/ {1 x6 }9 v& t6 l/ z( s h $ t; n. G' _7 F2 F
; d! k. d% }. M8 O$ n1 e5 L
# A: w' r& I* U1 A( i9 b 第二步:
: L, D! X- W* M+ I9 i ; j! V' Y" x4 n% T1 a( \
在配置AOP时,加上
0 g; f1 |% u: Z, m, @ <!--通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller(Action)-->7 I q8 T$ A" J T
<aop:aspectj-autoproxy proxy-target-class="true"/>//关键是这句话,配置上就行了,
" K" v# n# W9 l- q* a) b
0 P! j7 C& ^6 M( A
科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关2、本站所有主题由该帖子作者发表,该帖子作者与科帮网 享有帖子相关版权3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网 的同意4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意7、科帮网 管理员和版主有权不事先通知发贴者而删除本文
JAVA爱好者①群:
JAVA爱好者②群:
JAVA爱好者③ :