Spring Beanを作成したConfigurationクラスまたはxmlファイルを調べるためのプログラム的な方法はありますか?それを理解するためにコードを掘り下げる代わりに。Spring Beanの作成方法をプログラムで確認する方法はありますか?
6
A
答えて
4
以下は、Bean名を使用して構成のソースを取得する方法を示しています。 ctx.getBeanDefinition( "のbeanName")()
- は、BeanのBean定義を取得します。
以下は、AppConfigで定義された@コンフィグレーションベースのBeanと、SpringBeans.xmlで定義された "xmlBean"という名前のXML Beanを設定する実例です。いずれの場合も、ソース@Configurationクラスまたはxmlファイルが正しく表示されます。
ここでは、Bean = aを設定し、Bean = xmlBeanを含むXML設定ファイルSpringBeans.xmlをロードするjava設定クラスを示します。ここ
@Configuration
@ImportResource({"classpath:SpringBeans.xml"})
@ComponentScan(basePackages = "com.test.config")
public class AppConfig {
@Bean
public A a() {
return new A();
}
}
はSpringBeans.xmlで定義された豆である:
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
BeanDefinition javaConfigBeanDefinition = ctx.getBeanDefinition("a");
System.out.println("Creation class for a=" + javaConfigBeanDefinition.getResourceDescription());
BeanDefinition xmlBeanDefinition = ctx.getBeanDefinition("xmlBean");
System.out.println("Creation XML file for xmlBean=" + xmlBeanDefinition.getResourceDescription());
出力:
Creation class for a=com.test.config.AppConfig
Creation XML file for xmlBean=class path resource [SpringBeans.xml]
ここ
<bean id="xmlBean" class="com.test.HelloWorld">
<property name="name" value="XML" />
</bean>
はgetResourceDescriptionを使用する簡単なコード()でありますおそらくより現実的な方法BeanDefinitionRegistryPostProcessorを作成することであり、そこに情報を要求:
@Component
public class FindBeanConfigLocation implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory arg0) throws BeansException {
}
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
BeanDefinition javaConfigBeanDefinition = registry.getBeanDefinition("a");
System.out.println("Creation class for a=" + javaConfigBeanDefinition.getResourceDescription());
BeanDefinition xmlBeanDefinition = registry.getBeanDefinition("xmlBean");
System.out.println("Creation XML file for xmlBean=" + xmlBeanDefinition.getResourceDescription());
}
}
関連する問題
- 1. Springアプリケーションコンテキスト外でSpring Beanを作成する方法
- 2. クライアントをカールで確認する方法はありますか?
- 3. ASPxGridViewでASPxCheckBoxを確認する方法はありますか?
- 4. スレッド作成を確認する方法(Cプログラム)
- 5. orderbychildの値を確認する方法はありますか?
- 6. Spring Bean/Service作成の問題を診断する良い方法はありますか?
- 7. NSMicrophoneUsageDescriptionをプログラムで確認する方法
- 8. HttpResponseがSpringインターセプタのリダイレクトであるかどうかを確認する方法はありますか?
- 9. Spock拡張モジュールからSpring Beanにアクセスする方法はありますか?
- 10. ミュート状態を確認する方法はありますか?
- 11. アンドロイドにレイアウトのコピーをプログラムで作成する方法はありますか?
- 12. IClientConfigでBeanを作成する方法
- 13. Springで弾力のあるBeanを実装する方法は?
- 14. Sqlalchemy:ORMでスキーマを作成または確認する方法
- 15. プログラムでunwind segueを作成する方法はありますか?
- 16. SpringコンテナのBeanに問い合わせる方法はありますか?
- 17. xmlからプログラムで正確にビューを作成する方法
- 18. InnerクラスのSpring Beanの作成方法は?
- 19. サーバーの確認方法はありますか?
- 20. UIButtonの確認方法にはターゲットがありますか?
- 21. Laravel 5.2の確認方法はありますか?
- 22. working wifiの確認方法はありますか?
- 23. メールアドレスの確認方法はありますか?
- 24. 電子メールアドレスの確認方法はありますか
- 25. @ web.xmlコンフィグレーションで@ConfigurationからJersey 2/Spring 4ロードBeanを作成する方法
- 26. Shopifyでプログラムで顧客を認証する方法はありますか?
- 27. iPhoneでログファイルを作成する方法はありますか
- 28. ipyvegaでSVGを作成する方法はありますか?
- 29. Expressでセットアップステージを作成する方法はありますか?
- 30. Kivyでカスタムプロパティを作成する方法はありますか?
私は同様の問題をデバッグする必要がありましたたら。 SpringがさまざまなソースからBean定義を読み込む段階があります。このBean定義のコンストラクターに条件ブレークポイントを設定し、最初に作成されたときに条件を満たすことができます。次に、stacktraceの上に移動してソースを表示します。 – AdamSkywalker
@AdamSkywalkerうん、それより簡単な方法があると思っていた。 – Glide