私のアプリケーション要件は、アプリケーション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;
}
ので、ここでの提案は、上記の私の工場の代わりに、カスタム・アプリケーション・コンテキストを作成することであり、私は豆を初期化したら、私はそれからそれを取ることができますアプリケーションのコンテキストと私のメインに追加? – DJ180
はい、ここでは2つのことがあります。まず、コンテキストのハンドルを取得して、プログラマチックに設定できるようにします。 2つめのポイントは、PropertyPlaceHolderConfigurerを初期化して、アプリケーションの外部からシステムプロパティを渡すことです。 –