0

Spring ポートレット コントローラー クラスがあります。このクラスには、次のような依存関係があります。

@Autowired
protected ServiceClass someService;

@Autowired
protected ApplicationContext context;

コントローラーから、次のように呼び出されるユーティリティ クラスがあります。

UtilityClass.loadStaticData((WebApplicationContext)context);

内部UtilityClassには、次のものがあります。

public static synchronized boolean  loadStaticData(WebApplicationContext context){

    ServiceClass someService = (ServiceClass) context.getBean("someService");
...
}

私の質問は次のとおりです。このような複雑な方法で someService のハンドルを取得する利点はありますか? Controller クラス #1 から UtilityClass に参照「someService」を渡すだけで済みます。著者が不在のため、こちらで質問させていただきます。

4

1 に答える 1

0

これは基本的に、依存関係の注入が回避しようとするものです。つまり、コンテナーによって依存関係が注入されるのではなく、コンテナーから依存関係を取得します。

このユーティリティ クラスは、サービスが注入される Spring Bean である必要があります。そして、このユーティリティー Bean をコントローラー内に注入できます。

于 2013-04-16T20:42:25.077 に答える