Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring AOP在注入的代理bean上不工作_Spring_Dependency Injection_Proxy_Aop_Spring Aop - Fatal编程技术网

Spring AOP在注入的代理bean上不工作

Spring AOP在注入的代理bean上不工作,spring,dependency-injection,proxy,aop,spring-aop,Spring,Dependency Injection,Proxy,Aop,Spring Aop,我有两个bean:一个服务bean和一个控制bean。我已经使用SpringAOP实现了这两个bean的方面。然而,方面只在服务bean上起作用。这是我的beans.xml文件 服务BEAN <bean id="mySvc" class="com.service.MyService"> <property name="ctrl" ref="ctrlProxy"/> </bean> <bean id="myCtrl" class="com.contr

我有两个bean:一个服务bean和一个控制bean。我已经使用SpringAOP实现了这两个bean的方面。然而,方面只在服务bean上起作用。这是我的beans.xml文件

服务BEAN

<bean id="mySvc" class="com.service.MyService">
  <property name="ctrl" ref="ctrlProxy"/>
</bean>
<bean id="myCtrl" class="com.control.MyCtrl"/>

服务BEAN代理

<bean id="mySvcProxy" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="target" ref="mySvc" />

    <property name="interceptorNames">
        <list>
            <value>svcaspect</value>
        </list>
    </property>
</bean>
<bean id="myCtrlProxy" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="target" ref="myCtrl" />

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

SVC方面
CONTROLBEAN

<bean id="mySvc" class="com.service.MyService">
  <property name="ctrl" ref="ctrlProxy"/>
</bean>
<bean id="myCtrl" class="com.control.MyCtrl"/>

CONTROLBEAN代理

<bean id="mySvcProxy" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="target" ref="mySvc" />

    <property name="interceptorNames">
        <list>
            <value>svcaspect</value>
        </list>
    </property>
</bean>
<bean id="myCtrlProxy" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="target" ref="myCtrl" />

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

ctrlaspect

当我在没有代理的情况下将ctrl bean注入到服务bean中时,它工作得很好。请帮忙。我已经被困在这里很长时间了。

您的问题有什么症状?当使用代理作为依赖项时,你会遇到一些异常吗?不会。它的工作原理就像没有方面一样。奇怪。。。也许你的相貌不正确。您是否检查过JavaDoc中的ProxyFactoryBean#setInterceptorNames?终于找到了原因。结果证明“自动布线”是问题所在。从控制bean中删除autowire时,它起了作用。但是,仍然无法找到解决方案。