Spring2中aop的使用及遇到的一些问题
aop在spring中有两中实现的方式一种是xml,一种是基于注解的,我主要通过xml方式来实现首先是要引入相关的jar包,如aspectjrt.jar,aspectjweaver.jar<bean id="aaa" expression="execution(* bbbbbb*.checkLogin*(..))"/><aop:after-returning method="loginLog" pointcut-ref="login"/> </aop:aspect></aop:config>execution(* bbbbbb*.checkLogin*(..)* 返回类型bbbbbb* 包路径checkLogin* 方法名.. 参数method="loginLog" aaa中调用方法pointcut-ref="login" target方法execution(* *(..)) and !execution(* *(..)) 包含并且不包含指定路径中方法aop:after-returning 方法之后调用aop:around 方法前后aop:before 调用之前aop:throw 异常之后在拦截方法时,原方法如果有异常抛出,要捕捉业务异常,并继续抛出注意在指定包中存在的方法重名的现象在websphere环境中,加入aop之后,带来了循环依赖的问题,因为在原有的程序中,存在着循环依赖的情况, 在没有加入aop之后,没有显现,加入之后,则出现has been injected into other beans xxxxx in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of auto-proxy creation). This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example最终去掉了引用,建立新的第三方对象,解决这个问题.