Spring Tool Suite (STS) を使用して、大規模な Java Spring プロジェクトを管理しています。STS に、特定の Bean の宣言をそのエイリアスで見つけることができる関数はありますか?
たとえば、Java クラスに次のプロパティがあるとします。
@Resource
private WidgetService widgetService;
このプロパティは、名前の Spring Bean から自動配線されることを知っています"widgetService"
。注入される Bean は、インターフェースを実装するクラスのインスタンスになりますWidgetService
。実装は、インターフェイスと同じパッケージに配置されていない可能性があります。そのプロパティ宣言から、どの実装が挿入されるかをすばやく判断する方法が必要です。
Spring Beans Searchを使用して検索しようとしましwidgetService
たが、空でした。Bean は次のように定義されているため、空になりました。
<alias alias="widgetService" name="defaultWidgetService" />
<bean id="defaultWidgetService" class="namespace.DefaultWidgetService"/>
私の検索に対する答え ( DefaultWidgetService
) がありますが、それは「defaultWidgetService」という名前の Bean の中にあります。オートワイヤーに使用される Bean@Resource
はエイリアスであるため、名前、クラスなどで検索するオプションしかなく、エイリアスでは検索できないため、Spring Beans 検索は機能しません。
ファイル検索を使用して検索できることはわかっていますalias="widgetService"
が、プロジェクトのサイズが大きいため、テキストによる検索は非常に遅くなります。デバッグ時にプロパティを調べて、注入された Bean のクラスを取得することもできますが、これも面倒です。Java Search は索引付けされているため高速であり、Spring Beans Search も同じ理由で高速です。しかし、私は疑問に思います: エイリアス化された Bean を見つけるのに役立たないのに、なぜ STS を使用しているのですか?