0

id および name 属性が に配置されていない場合、Spring コンテナーがクラスのオブジェクトを作成する方法と、Spring 構成ファイルで複数の同じクラスが構成されている場合に使用される名前

4

2 に答える 2

1

クラスspringの名前/IDを定義しない場合、デフォルトの名前は次のように設定されます。

com.mypackage.MyClass#0 //For the first object by MyClass
com.mypackage.MyClass#1 //For the second object by MyClass

タイプを要求するコンテキストを介してこのオブジェクトにアクセスしようとすると、springは例外を返します(タイプの一意のBeanはありません)。ただし、名前でコンテキストを要求するためにアクセスできます。

MyClass m0 = (MyClass)appContext.getBean("com.mypackage.MyClass#0"); // This work
MyClass m1 = (MyClass)appContext.getBean("com.mypackage.MyClass#1"); // This work
MyClass m2 = (MyClass)appContext.getBean(MyClass.class); // This DOES NOT work
于 2012-05-24T13:30:53.027 に答える
1

@HenriqueMirandaは、命名規則について説明しています。また、そのような Bean (これらをanonymousと呼びましょう) は、別の Bean 内で宣言されたときによく使用されることも付け加えておきます。

<bean id="someBean" class="SomeBean">
    <property name="dependency">
        <bean class="Dependency"/>  <!-- anonymous here -->
    </property>
</bean>
于 2012-05-24T18:19:10.003 に答える