2017-05-10 5 views
0

A.javaなぜ私は同じBeanを注入しますが、実際に別のクラスを注入しましたか?

@Controller 
@RequestMapping(value = "/a") 
public class A { 
    @Resource(name = "foo") 
    private Foo foo; 
} 

B.java

@Controller 
@RequestMapping(value = "/b") 
public class B { 
    @Resource(name = "foo") 
    private Foo foo; 
} 

X-spring.xml

<alias name="foo1" alias="foo"/> 
<bean id="foo1" class="com.example.Foo1" scope="tenant"> 

Y-spring.xml

<alias name="Foo2" alias="foo"/> 
<bean id="foo2" class="com.example.Foo2" scope="tenant"> 

Foo1由来のFoo2。スコープはHybrisを使用したプロジェクトです(Hybrisによって定義されています)。

は、上記のように、私はクラスAクラスB"FOO"を注入し、X-spring.xmlは、Y-spring.xmlが一つずつロード。しかし、私は、注入されたBeanが異なっていた、それはクラスAFOO1だし、それは、クラスBfoo2はだ、私は、彼らが異なっている理由だろう、とFOO1にそれらを整列する方法。

+0

エイリアスを交換しますか? – StanislavL

答えて

1

x-spring.xmlとy-spring.xmlは2つの異なるコンテキストにあります。おそらく、2つの異なる拡張から2つの分離されたWebコンテキストです。

両方のコンテキストでアクセス可能にするには、コアアプリケーションコンテキストでBeanを1回宣言します。

テナントのスコープは、春のコンテキストを使用し、推奨されていませんかyrequest

関連する問題