プロパティが実行時にのみ認識されるコードがいくつかあります。
この場合、ユーザーは URL、ユーザー名、およびパスワードを入力できます。
ConnectionFactory cf = (ConnectionFactory) this.factory.getBean(
"topicConnectionFactory", <URL which is entered at runtime>)
final UserCredentialsConnectionFactoryAdapter connectionFactory = this.factory
.getBean(UserCredentialsConnectionFactoryAdapter.class);
connectionFactory.setTargetConnectionFactory(cf);
UserCredentialsConnectionFactoryAdapterにはコンストラクター ベースのセットアップがないため、唯一の方法は引数なしのコンストラクターを使用して作成し、後でプロパティを設定することですが、Spring は InitializingBean を実行し、TargetConnectionFactory が設定されていないというエラーをスローします。
春の作成中にこの情報を渡す方法、または春の遅延のためにBeanの初期化を行う方法はありますか。
範囲を理解するために、以下はスプリングの構成のセクションです。
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"
scope="prototype" />
<bean id="userCredentialsConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"
scope="prototype" >
</bean>
<bean id="cachingFactory"
class="org.springframework.jms.connection.CachingConnectionFactory"
scope="prototype" />
<bean id="tibcoTopicConnectionFactory" class="com.tibco.tibjms.TibjmsTopicConnectionFactory"
scope="prototype" />
前述のように、URL、ユーザー名、およびパスワードは実行時まで不明であり、変更される可能性があります。アプリケーションはマルチスレッドです。アイデアは、どこかに接続し、メッセージを送信し、切断することです