Springを使用してリモートサーバーへのRMI呼び出しを処理しています。アプリケーションコンテキストを構築し、クライアント内からリモート呼び出し用のBeanを取得するのは簡単です。
ApplicationContext context = new ApplicationContext("classpath:context.xml");
MyService myService = (MyService ) context.getBean( "myService " );
ただし、プロパティを構成に渡す簡単な方法がわかりません。たとえば、クライアント内の実行時にリモートサーバーのホスト名を決定する場合です。
理想的には、Springコンテキストに次のようなエントリがあります。
<bean id="myService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://${webServer.host}:80/MyService"/>
<property name="serviceInterface" value="com.foo.MyService"/>
</bean>
プロパティをクライアントからコンテキストにパラメータとして渡します。
コンテキストでPropertyPlaceholderConfigurerを使用してこれらのプロパティを置き換えることができますが、これが機能するのは、ファイルから読み取られたプロパティに対してのみです。
私はこれに対処する実装を持っています(答えとして追加されました)が、私は自分自身を転がすことを避けるために標準のSpring実装を探しています。構成を初期化するのに役立つ別のSpringconfigurer(または他のもの)はありますか、それともこれを達成するためにJava構成を調べる方が良いですか?