2017-02-05 12 views
1

プロパティファイルからすべてのアプリケーションプロパティを読み取る必要があるアプリケーションがあります。その後、それらを外部キャッシュフレームワークからオーバーライドします。その後、豆を初期化します。遅延スプリングXMLインポート

私は、SpringのJava Configを使用してプロパティを読み取り、それらを上書きします。 @importを使ってxmlファイルを読み込む。しかし、コンテキストがロードを開始するとすぐにXMLファイルがインポートされ、結果としてすべてのXML Beanが初期化されます。

すべてのプロパティを最初に読み込むまで、XMLファイルのインポートを遅延させる方法はありますか?

答えて

0

次のコードを使用できます。

<beans default-lazy-init="true"> 
<!-- no beans will be pre-instantiated... --> 
</beans> 

またはロードしたくない豆のlazy-initを個別に追加します。

それとも

多くの方法がありますが、あなたは、アノテーションベースの設定、

を探している場合は、その後、プロパティファイルを読み取ることができdepends-onまたは@DependsOnを使用することができるものそのうちあなたの条件を達成することができますキャッシュBeanを作成し、 depends-onを使用すると、Beanが他のBeanに依存していることをコンテナに知らせることができます。キャッシュBeanを初期化し、適切に使用することができます。

これを参照してください。example応じて、豆は、あなたがこのBeanのインスタンスを持つことになりますので、このBeanに依存豆の前に作成され、それを使用することができ

<bean id="primaryBean" depends-on="cacheBean"></bean> 

今のIoCを保証します。

これ以外

あなたがspring docsを参照することができ、より参照の場合LifeCycleインタフェース

public interface Lifecycle { 

    void start(); 
    void stop(); 
    boolean isRunning(); 
} 

を実装することができます。

+0

ありがとうございますVipul、しかしキャッチは、私がインポートしようとしているspring xml beansを変更できません。ですから、これらのxmlファイルにlazy initやdepends-onを追加することはできません – Devilethon

+0

xmlの代わりに@DependsOnアノテーションを使用します。 –