应用Spring的Aop方法 怎样方便的代理多个类

jampou 2006-02-24 03:32:45
我看了几个spring aop 的例子,都是一个代理设置 代理一个类,能不能一个代理多个类呢,就是被代理的类执行了相应的方法都要被拦截。
我的具体的配置是这样的:
<bean id="menuController" class="org.foodreg.web.MenuController">
<property name="foodReg"><ref bean="foodReg"/></property>
<property name="viewName"><value>include/office</value></property>
</bean>

<bean id="myPointcutAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="MyInterceptor"/>
</property>
<property name="patterns">
<list>
<value>.*handleRequest.*</value>
<value>.*execute.*</value>
</list>
</property>
</bean>

<bean id="signonController" class="org.foodreg.web.SignonController">
<property name="foodReg"><ref bean="foodReg"/></property>
</bean>

<bean id="MyInterceptor" class="test.MethodTimeCostInterceptor" />

<bean id="myAOPProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.springframework.web.servlet.mvc.Controller</value>
</property>
<property name="target">

<ref local="signonController"/>
<!--
<ref local="menuController"/>
-->
</property>
<property name="interceptorNames">
<list>
<value>myPointcutAdvisor</value>
</list>
</property>
</bean>

<bean id="myAOPProxy2" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.springframework.web.servlet.mvc.Controller</value>
</property>
<property name="target">
<!--
<ref local="signonController"/>
-->
<ref local="menuController"/>

</property>
<property name="interceptorNames">
<list>
<value>myPointcutAdvisor</value>
</list>
</property>
</bean>


<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/foodreg/signon.do">myAOPProxy</prop>
<prop key="/foodreg/office.do">myAOPProxy2</prop>
</props>
</property>
</bean>
可以看到我的 Controller 除了具体实现类不一样,其他都是一样的,怎么在一个代理里设置多个类呢?
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jampou 2006-02-27
  • 打赏
  • 举报
回复
不明白 tomuno(特别行动组) 的意思
jampou 2006-02-27
  • 打赏
  • 举报
回复
谢谢 Saro
Saro 2006-02-24
  • 打赏
  • 举报
回复
也可以试试这个:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames"><value>*Controller</value></property>
<property name="interceptorNames">
<list>
<value>myPointcutAdvisor</value>
</list>
</property>
</bean>

DefaultAdvisorAutoProxyCreator更强大,也更难控制,去查查SpringReference:6.8. Creating AOP proxies programmatically with the ProxyFactory。
Saro 2006-02-24
  • 打赏
  • 举报
回复
有些不明白楼主的意思,但也许这样可以满足你的需求:

<bean id="basemyAOPProxy" class="org.springframework.aop.framework.ProxyFactoryBean" abstract="true" >
<property name="proxyInterfaces">
<value>org.springframework.web.servlet.mvc.Controller</value>
</property>
<property name="interceptorNames">
<list>
<value>myPointcutAdvisor</value>
</list>
</property>
</bean>

-------------------

<bean id="myAOPProxy" class="org.springframework.aop.framework.ProxyFactoryBean" parent="basemyAOPProxy">
<property name="target"><ref local="signonController"/></property>
</bean>

<bean id="myAOPProxy2" class="org.springframework.aop.framework.ProxyFactoryBean" parent="basemyAOPProxy">
<property name="target"><ref local="menuController"/></property>
</bean>


tomuno 2006-02-24
  • 打赏
  • 举报
回复
class写出接口就可以了
天天实习 2006-02-24
  • 打赏
  • 举报
回复
学习中,

679

社区成员

发帖
与我相关
我的任务
社区描述
智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
linuxpython 技术论坛(原bbs)
社区管理员
  • 智能路由器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧