Springを使用して注入される最も一般的なタイプの依存関係は、それらの構築に対するユーザー入力に依存しません。これには、データアクセスオブジェクト、サービスなどが含まれます。
直接または間接的にユーザー入力に依存する構造のドメインオブジェクトを注入することについて話しています。
Springは、演算子@Configurable
を使用して作成されたそのようなドメインオブジェクトを挿入するためのアノテーションを提供します。new
インターネットで「@ConfigurableDomainDrivenDesign」を検索して、これを実装する方法の例を入手できます。私自身、自分のアプリケーションの1つでそれを使用し、始めるのに役立つかもしれない簡単な投稿をここに書きました。
編集:
更新された質問の仕様に従ってタイプMyEntityのBeanを作成するには、次のことを行う必要があります。
- MyContextタイプのBeanを定義します
- MyContextBeanに依存するMyEntityFactoryクラスを作成します。
- ファクトリメソッドは、MyContext Beanを引数として受け取り、それを呼び出し
context.start()
て、MyEntityのインスタンスを返します。
- このファクトリクラスを使用してMyEntityBeanを定義します。
MyEntityFactoryクラスは次のようになります。
public class MyEntityFactory
{
public static MyEntity getMyEntity(MyContext context)
{
context.start();
return context.getEntity();
}
}
春の豆の構成は次のようになります。
<bean id="myContext" class="FQCN.Of.MyContext" />
<bean id="myEntity" class="FQCN.Of.MyEntityFactory" factory-method="getMyEntity">
<constructor-arg ref="myContext" />
</bean>
はシングルトンBeanであるためMyEntity
、ファクトリメソッドは1回だけ呼び出されます。
ファクトリメソッドを使用したBeanの作成について詳しくは、こちらをご覧ください。