读书人

关于 DefaultAdvisorAutoProxyCreator

发布时间: 2012-10-31 14:37:31 作者: rapoo

关于 DefaultAdvisorAutoProxyCreator 自动代理

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

然后结合了RegexpMethodPointcutAdvisor,用拦截方法的办法!(因为是初学,所以可能很多地方表达不正确)
applicationContext.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 把网络电源给切了,结果到现在才发上来.估计大家都过国庆去了,哎!)

?

?

1 楼 fyting 2007-10-04 action在哪儿被调用?什么地方用了getBean("xxxx"),就搞一个自己的Factory嘛... 2 楼 fengzl 2007-10-04 自动代理更适合用在业务对象上,增强action?这个有什么意义?
action很难抽象出一个切面来。
action是直接处理request的,
如果你的service层是个facade,只要控制好接口的粒度,把你的要求放在业务对象上应该没问题 3 楼 kyo100900 2007-10-06 <br/>
<strong>lz726 写道:</strong><br/>
<div class='quote_div'>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><font>,而且调用的时候,也要每次都getBean("xxxx").</font></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'/></span></span></span></span></span></span></span></span></span></span></span></span></p>
</div>
<p>?</p>
<p>?</p>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'>请问你这个必须都getBean("xxxx")是怎么回事?Spring的IoC你没有理解还是另有隐情?</span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><br/>
<br/>
<br/>
<br/>
</p>

读书人网 >软件架构设计

热点推荐