シングルトン オブジェクトの静的ラッパーである XXXLocalServiceUtil クラスの形式でサービスを公開する API を使用しています。静的な XXXLocalServiceUtil メソッドを使用する代わりに、XXXLocalService オブジェクト自体を挿入して、コードで直接使用したいと考えています。
@Named
public class MyMailingService {
@Inject UserLocalService userService;
public String mailUser(String email) {
User user = userService.getUser(email);
emailUser(user);
}
}
そして、私のapplicationContext.xml
ように設定します:
<beans ...>
<bean class="x.y.z.UserLocalServiceUtil" factory-method="getService"/>
<bean class="x.y.z.CompanyLocalServiceUtil" factory-method="getService"/>
...
</beans>
これは完全に機能します。さて、私が話しているこの API には、これらの XXXLocalServiceUtil クラスが約 100 あり、それぞれに実際のサービスを返す独自の静的getService
メソッドがあります。これらすべてのサービスをリストする代わりに、applicationContext.xml
Spring に、注入する XXXLocalService ごとに適切な XXXLocalServiceUtil クラスを見つけるという魔法を実行させたいと思います。したがって、私が必要としているのは、もちろん遅延読み込みベースで、私のために作業を行うある種の動的 Bean ファクトリです。
これを簡単に達成する方法を知っている人はいますか?