Spring 3.0 RmiProxyFactoryBean:如何在运行时更改serviceUrl?

Spring 3.0 RmiProxyFactoryBean:如何在运行时更改serviceUrl?,spring,javabeans,rmi,Spring,Javabeans,Rmi,我有这样一个bean定义: <bean id="myService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceInterface" value="org.myapp.MyService"/> <property name="serviceUrl" value="rmi://localhost:1099/myServ

我有这样一个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>
当然,它返回的是“MyService”impl的实例,而不是RmiProxyFactoryBean


那么,如何使用上面的xml定义更改“serviceUrl”参数而不手动实例化RmiProxyFactoryBean?

要获取
FactoryBean
实例而不是工厂创建的bean,请使用
BeanFactory.factory\u bean\u前缀
。即


RmiProxyFactoryBean rpfb=(RmiProxyFactoryBean)contex.getBean(“&myService”)

如果您想这样做,那么手动创建和配置
RmiProxyFactoryBean
是最好的方法。@skaffman用新作品手动创建了它。但是使用新端点再次调用new会导致连接异常,因为缓存的旧端点不可访问;它不会更新为使用新的端点,即使我们也在RmiProxyFactoryBean上使用new然后调用AfterPropertieSet()。太棒了!这正是我要找的!然后是rpfb.setServiceUrl(…)和rpfb.AfterPropertieSet();做剩下的。谢谢
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:rmi-client-config.xml");
    MyService myService = context.getBean("myService", MyService.class);