【发布时间】:2012-05-08 17:49:45
【问题描述】:
我有一个这样的 bean 定义:
<bean id="myService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceInterface" value="org.myapp.MyService"/>
<property name="serviceUrl" value="rmi://localhost:1099/myService"/>
</bean>
我以这种方式检索服务 bean:
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:rmi-client-config.xml");
MyService myService = context.getBean("myService", MyService.class);
当然,它返回一个“MyService”实例,而不是 RmiProxyFactoryBean。
那么如何使用上面的 xml 定义更改“serviceUrl”参数而不手动实例化 RmiProxyFactoryBean?
【问题讨论】:
-
如果你想这样做,那么手动创建和配置
RmiProxyFactoryBean是最好的方法。 -
@skaffman 使用 new 作品手动创建它。但是由于无法访问 cached 旧端点,再次使用新端点调用 new 会导致连接异常;它不会更新以使用新端点,即使我们使用 new 然后在 RmiProxyFactoryBean 上调用 afterPropertiesSet() 也是如此。