2016-07-06 7 views
0

私のアプリケーション要件は、アプリケーションBeanを実行時に手動で作成してアプリケーションコンテキストに追加する必要があることを意味します。Spring:アプリケーションコンテキスト外でのPropertyPlaceholderConfigurerサポートの使用

これらの豆は第三者のライブラリに属していますので、私はそれらを変更することはできません。これらのBeanを作成しますTibjmsConnectionFactory

だから私のファクトリクラスは、ユーザ名を設定しますPropertiesオブジェクト、パスワード、connectionTimeoutsなどを設ける必要がある

理想的には私はそう私がSpringのプロパティサポートを使用したいのですがなど

整数に文字列を変換する必要はない。また、私のファクトリクラスに提供Propertiesは私の全体的なApplicationContext

どうかにPropertyPlaceholderConfigurerによってのために使用されるのと同じプロパティではありません私はこれを達成するか、それとも可能ですか?

public class MyCustomFactoryStrategy { 
    @Override 
    public TibjmsConnectionFactory create(Properties properties) { 
     TibjmsConnectionFactory connectionFactory = new TibjmsConnectionFactory(); 
     connectionFactory.setServerUrl(properties.getProperty("emsServerUrl")); // this is a string 
     connectionFactory.setConnAttemptCount(new Integer(properties.getProperty("connAttemptCount"))); // this is an integer 
     ... 
     return connectionFactory; 
    } 

答えて

0

この記事をご覧ください。私はそれがあなたが必要とするものかもしれないと思います。

[PropertyPlaceholderConfigurer not loading programmatically

[1]:

+0

ので、ここでの提案は、上記の私の工場の代わりに、カスタム・アプリケーション・コンテキストを作成することであり、私は豆を初期化したら、私はそれからそれを取ることができますアプリケーションのコンテキストと私のメインに追加? – DJ180

+0

はい、ここでは2つのことがあります。まず、コンテキストのハンドルを取得して、プログラマチックに設定できるようにします。 2つめのポイントは、PropertyPlaceHolderConfigurerを初期化して、アプリケーションの外部からシステムプロパティを渡すことです。 –

関連する問題