[bean id="remoteRegisterCall" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"]
[property name="advice"]
[ref bean="remoteUserRegMethodAdvice" /]
[/property]
[property name="pattern"]
[value].*Remote*.*[/value]
[/property]
[/bean]
[!-- 在这里定义的userMemberService是随意的,这个名字一般用不到,其它的一般不引用这个id--]
[bean id="userMemberService" class="org.springframework.aop.framework.ProxyFactoryBean"]
[property name="target"]
[ref local="userMemberTarget" /][!--定义要拦截的对象--]
[/property]
[property name="interceptorNames"]
[list]
[value]remoteRegisterCall[/value]
[/list]
[/property]
[/bean]
[!--如上,这个courseInfoService,其它地方一般也用不到--]
[bean id="courseInfoService" class="org.springframework.aop.framework.ProxyFactoryBean"]
[property name="target"]
[ref local="courseInfoTarget" /][!--定义要拦截的对象--]
[/property]
[property name="interceptorNames"]
[list]
[value]remoteRegisterCall[/value]
[/list]
[/property]
[/bean]
[!--以下定义的拦截器的实现--]
[bean name="remoteUserRegMethodAdvice" class="mypro.leopard.framework.remoteservice.RemoteUserAdvice"]
[property name="remoteService"]
[ref bean="remoteService"/]
[/property]
[property name="netUpdateService"]
[ref bean="netUpdateService"/]
[/property]
[/bean]
我们直接查找拦截的对象,从上面我们可以看到它们里面凡是带remote的方法都被拦截下来,交给我们定义的拦截器RemoteUserAdvice处理