Spring_AOP

[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处理

你可能感兴趣的:(spring,AOP,bean)