spring mvc 中怎么配置aop呢?

spring mvc 中怎么配置aop呢?,第1张

在 beans 里面

<aop:config>

<aop:aspect id="TestAspect" ref="aspectBean">

<!--配置com.spring.service包下所有类或接口的所有方法-->

<aop:pointcut id="businessService"

expression="execution(* com.spring.service.*.*(..))" />

<aop:before pointcut-ref="businessService" method="doBefore"/>

<aop:after pointcut-ref="businessService" method="doAfter"/>

<aop:around pointcut-ref="businessService" method="doAround"/>

<aop:after-throwing pointcut-ref="businessService" method="doThrowing" throwing="ex"/>

</aop:aspect>

</aop:config>

<bean id="aspectBean" class="com.spring.aop.TestAspect" />

<bean id="aService" class="com.spring.service.AServiceImpl"></bean>

<bean id="bService" class="com.spring.service.BServiceImpl"></bean>

最近由于项目原因,在Spring+SpringMVC+Mybatis的环境中,增加对controller或是service的日志监控,在网上搜了半天,按照SpringAop的配置出不了结果,在按照网上的各种配置改……,各种头疼中,无意中看到摸个高手写的一段文字突然,感觉很有意思,就这样莫名其妙的解决了。回头看,我去,别人都写好了,我们配置都不会配置,悲哀…,这就是我对各种框架一知半解,甚至不知道的结果。

首先对入口文件,web.xml分析:

还有一点,我们可以查到,加载这连个配置文件的累分别是:spring(applicationContext),SpringMVC(webApplicationContext)(希望没记错,记错了自己对应修改)

第一步,要明确,我们是在SpringMVC上aop监测,那么所有的报扫描注入都在SpringMVC的配置文件中完成,不要再spring的配置文件中完成,不然在开启代理后,发现还是没有起到任何作用。(当然,aopalliance-1.0.jar,aspectjweaver-1.8.6.jar这两个jar包不可缺少)

第二步,在SpringMVC的配置文件中开启它的代理模式:<aop:aspectj-autoproxy expose-proxy="true"></aop:aspectj-autoproxy>

第三步,进行aop监测相关方法的类的编写

最后就是一个小技巧,就是先测pointcut表达式的具体到某一个具体函数,成功后,在用.*来代替,在测,知道成功完成为止!!!!!

希望对大家有帮住,也希望有大牛深入剖析其中的原理。有看到的同学请给我转个链接,谢谢。

不太明白你的意思。spring AOP有2种方法来实现切入点。

1。用@注解方式 直接开启事务(用起来比较方便)

2。用默认配置文件方式(。xml))(正规大项目 都采用第二种方法,因为这样统一,还可观)

希望对你有所帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11243547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存