3

私は、(テスト用に) XML 構成をオーバーライドする注釈ベースの構成をロードできるユーティリティのセットアップに取り組んでいます。さまざまなセットアップを試しましたが、これが機能する唯一のセットアップです。

GenericApplicationContext firstCtx = new GenericApplicationContext();

XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(firstCtx );
xmlReader.loadBeanDefinitions("applicationContext.xml");

GenericApplicationContext ctx = new GenericApplicationContext();

AnnotatedBeanDefinitionReader annotatedReader = new AnnotatedBeanDefinitionReader(ctx);
annotatedReader.register(SomeConfigClass.class);

ctx.refresh();

for (String currBeanName : firstCtx.getBeanDefinitionNames())
{
    if (!ctx.containsBeanDefinition(currBeanName))
    {
        ctx.registerBeanDefinition(currBeanName, firstCtx.getBeanDefinition(currBeanName));
    }
}

これは技術的には機能しますが、これを行うには非常に面倒な方法のようです。XML ベースの構成よりも注釈ベースの構成をロードするためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

0

より簡単な方法はSomeConfigClass、アプリケーションコンテキスト内で Bean として宣言するだけで、 SomeConfigClass で構成された Bean が配線されると思います。

<bean class="..SomeConfigClass"/>

または <context:component-scan base-package="package of SomeConfigClass"/>

またはその逆に、SomeClassClass で次のようにします。@ImportResource("applicationContext.xml")

于 2012-07-25T23:40:03.803 に答える