Spring と同様に、ブループリントはプロトタイプ スコープをサポートします。しかし、Spring とは異なり、使用方法に関するドキュメントは見当たりません。
Spring では、コンテキストに新しい Bean を提供するように依頼できますが、ブループリントの世界でこれに相当するものは何ですか?
Spring と同様に、ブループリントはプロトタイプ スコープをサポートします。しかし、Spring とは異なり、使用方法に関するドキュメントは見当たりません。
Spring では、コンテキストに新しい Bean を提供するように依頼できますが、ブループリントの世界でこれに相当するものは何ですか?
BlueprintContainer.getComponentInstance() は、探しているものを正確に実行します。
Blueprint Container は、Blueprint バンドルの管理状態を表します。Blueprint Container は、すべての管理対象コンポーネントへのアクセスを提供します。これらは、Bean、サービス、およびサービス参照です。Blueprint Container は、定義済みの「blueprintContainer」コンポーネント ID を注入することで取得できます。
例
blueprint.xml:
<!-- blueprintContainer is predefined component here -->
<bean id="myService" class="myPackage.MyService">
<property name="container" ref="blueprintContainer"/>
</bean>
<!-- prototype which can be created from myService -->
<bean id="myPrototype" class="myPackage.MyPrototype" scope="prototype"/>
MyService.java:
// ...
// create new instance
MyPrototype myPrototype =
(MyPrototype) container.getComponentInstance("myPrototype");
pom.xml:
<!-- BlueprintContainer from Apache Aries-->
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.core</artifactId>
<version>1.3.0</version>
</dependency>