[spring] proxy beans die afhankelijk zijn van elkaar

Pagina: 1
Acties:

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 19-04 18:54
We lopen hier tegen een probleempje aan en weten niet direct hoe nu verder te gaan. We hebben 2 proxy beans:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    <bean id="a" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="target">
            <ref local="aTarget"/>
        </property>
        <property name="interceptorNames">
            <list>
                <value>someAdvisor</value>
            </list>
        </property>
    </bean>


    <bean id="b" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="target">
            <ref local="bTarget"/>
        </property>
        <property name="interceptorNames">
            <list>
                <value>someAdvisor</value>
            </list>
        </property>
    </bean>


met volgende (target) beans:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<bean id="aTarget" class="foo.A">
        <property name="b">
            <ref local="b"/>
        </property>
        
    </bean>

<bean id="bTarget" class="foo.B">
        <property name="a">
            <ref local="a"/>
        </property>
        
    </bean>


Als spring deze wil laden krijg je een fout in de aard van :

code:
1
org.springframework.aop.framework.AopConfigException: Cannot create AopProxy with no advisors and no target source


blijkbaar is dit een gekende bug in Spring maar we zoeken nu naar een workaround zolang deze niet gefixed is, iemand enig idee ?

als je naar volgende issue kijkt http://opensource2.atlass...cts/spring/browse/SPR-689 bij de comments schrijft iemand dat je dan een bean via een lookup method moet laden, maar als we dit doen komt de interceptor niet meer tussen...

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
De enige oplossing die ik kan bedenken is geen circulaire afhankelijkheid te hebben. Kun je niet je code refactoren zodat er functionaliteit verhuist, hetzij naar A of B, of naar een object C die dan weer afhankelijkheden heeft met A of B? Circulaire afhankelijkheden zijn zowieso meestal een design smell...