SpringApplicationを起動するときに私が書いたすべてのBeanを登録しようとしています。SpringApplication.runでロードされたすべてのBeanを一覧表示します。
を取得するすべて表示された豆が実行されます。このコードはそれを行います。
String[] beanNames = appContext.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
私は私のものを探すために、基本的なフィルタを使用してみました。
String[] beanNames = appContext.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
if (beanName.matches("(.*)Controller"))
System.out.println(beanName);
}
しかし、クラスがロードされるとき、それは本当にクラスの名前を正確にロードされていないBean名であるため、それが動作しません。だから、私がと書いたのなら、my.personal.package.structure.MyControllerそれはおそらくmyControllerと表示されます。パッケージ構造情報が失われてこのテクニックがレンダリングされますが、あまり効果的ではありません。
他の誰かが働いたことがありますか?私はこれがデバッグ用の開発者にとって非常に便利だと思います。
** spring-boot-starter-actuator **を追加し、** localhost:8080/beans **を追加しました。私はロードされたすべての豆の長いリストを持っていた、と思います。しかし、私が追加した豆だけを列挙する方法を探していました。だから、これは私が探していたものではありません。 –
私の2番目の選択肢は見たことがありますか?あなたはそれに一致条件を追加する必要があります.... – Pau
私は2番目のオプションを試しています。しかし、今まで、運はありません。 –