关于 DefaultAdvisorAutoProxyCreator 自动代理

本文介绍了一个使用SSH(Struts+Spring+Hibernate)架构的项目中如何利用Spring AOP(面向切面编程)来跟踪用户的操作信息。具体实现了通过DefaultAdvisorAutoProxyCreator与RegexpMethodPointcutAdvisor对特定的方法进行拦截,但同时也提到了需要为每个action单独配置的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用的是ssh架构~
模块要实现的功能是:跟踪用户的操作信息.比如,用户当前正在创建新的文章等等.然后现在用Spring的AOP实现.
用的是DefaultAdvisorAutoProxyCreator 自动代理,项目中的action很多,项目也比较大,所以思前想后,就选这个.

然后结合了RegexpMethodPointcutAdvisor,用拦截方法的办法!(因为是初学,所以可能很多地方表达不正确)
applicationContext.xml里头的这部分配置:

xml 代码
  1. <bean id="abeforeAdvisor"   class="com.csc.callcenter.util.ActionBeforeAdvisor">bean>     
  2.    <bean id="aafterAdvisor"  class="com.csc.callcenter.util.ActionAfterAdvisor">bean>     
  3.    <bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">     
  4.    bean>     
  5.     <bean id="beadvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
  6.     <property name="pattern">     
  7.       <value>.*doAction.*value>       
  8.     property>     
  9.     <property name="advice">     
  10.       <ref bean="abeforeAdvisor"/>     
  11.     property>     
  12.   bean>     
  13.    <bean id="afadvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
  14.     <property name="pattern">     
  15.       <value>.*doAction.*value>       
  16.     property>     
  17.     <property name="advice">     
  18.       <ref bean="aafterAdvisor"/>     
  19.     property>     
  20.   bean>     
  21.    <bean id="onlineAction"   class="com.csc.callcenter.web.onlineinfo.OnlineAction">bean>     
  22.    <bean id="userInfoAction"  class="com.csc.callcenter.web.onlineinfo.UserInfoAction">bean>    


        但是这样,有一个问题,每个aciton 都要在这里配置好,系统初始化的时候,需要getBean("xxxx"),来获得配置里头的bean的信息.我们项目经理说,这样的方法不太好,偶也想寻求更好的办法!不知道有没有更好的解决方法?

       (本来这文字下班时候就敲好了,等偶要提交的时候,老PA 把网络电源给切了,结果到现在才发上来.估计大家都过国庆去了,哎!)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值