使用ProxyFactoryBean和Java配置在Spring bean中整合MethodInterceptor

问题描述

要求是拦截供应商类的bean的所有方法调用。我想这样做,将需要添加一个方法拦截器。本质上,解决方案应该在以下几行:

@Bean
public Person person() {
    // config setup for adding proxy to all the methods of the proxy class.
    return new Person();
}

在阅读文档时,我发现了以下示例,其中使用XML配置完成了类似的事情。

<bean id="personTarget" class="com.mycompany.PersonImpl">
    <property name="name"><value>Tony</value></property>
    <property name="age"><value>51</value></property>
</bean>

<bean id="myAdvisor" class="com.mycompany.MyAdvisor">
    <property name="someProperty"><value>Custom string property value</value></property>
</bean>

<bean id="debugInterceptor" class="org.springframework.aop.interceptor.DebugInterceptor">
</bean>

<bean id="person" 
    class="org.springframework.aop.framework.Proxyfactorybean">
    <property name="proxyInterfaces"><value>com.mycompany.Person</value></property>

    <property name="target"><ref local="personTarget"/></property>
    <property name="interceptorNames">
        <list>
            <value>myAdvisor</value>
            <value>debugInterceptor</value>
        </list>
    </property>
</bean>

(来源:https://docs.spring.io/spring/docs/3.0.0.M4/reference/html/apbs05.html

在Java配置中实现相同的等效条件是什么?我看着@Scope(...,proxyMode=...),但不知道这对您有什么帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)