我目前正在使用 SpringRmiProxyFactoryBean
来访问远程服务。由于需求发生了变化,我需要在运行时指定一个不同的主机 - 可以有很多 - ,但remoteServiceInterface
和非主机组件remoteServiceUrl
保持不变。
从概念上讲,我会看到一个类似于以下内容的 bean 定义:
<bean class="org.springframework.remoting.rmi.RmiProxyFactoryBeanFactory">
<property name="serviceInterface" value="xxx"/>
<property name="serviceUrl" value="rmi://#{HOST}:1099/ServiceUrl"/>
</bean>
这暴露了一个
Object getServiceFor(String hostName);
Spring有这样的服务吗?或者,您是否看到另一种方法?
请注意,在编译或启动时将不知道主机列表,因此我无法在 xml 文件中生成它。