8

XmlApplicationContextSpringをからに移行しようとしていますAnnotationConfigApplicationContext(詳細:Javaベースのコンテナ構成)。

すべてが完璧に機能しますが、HttpInvokerクライアントを作成する方法がわかりません。XML構成は次のとおりです。

<bean id="httpInvokerProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
    <property name="serviceUrl" value="http://remotehost:8080/remoting/AccountService"/>
    <property name="serviceInterface" value="example.AccountService"/>
</bean>

Java構成はどのように見えるべきですか?このファクトリービーンはまだ必要ですか?この構成方法を使用すると、このラッパーなしでクライアントをインスタンス化できるはずです。

これは(どういうわけか)私には気分が悪い:

public @Bean AccountService httpInvokerProxy() {
    HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean();
    proxy.setServiceInterface(AccountService.class);
    proxy.setServiceUrl("http://remotehost:8080/remoting/AccountService");
    proxy.afterPropertiesSet();
    return (AccountService) proxy.getObject();
}
4

1 に答える 1

8

実際、正しい(そして同等の)バージョンはさらに厄介です:

public @Bean HttpInvokerProxyFactoryBean httpInvokerProxy() {
    HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean();
    proxy.setServiceInterface(AccountService.class);
    proxy.setServiceUrl("http://remotehost:8080/remoting/AccountService");
    return proxy;
}

(結局のところ、通常、FactoryBeanは、返されるBeanではなく、Springによって管理される必要があります)

参考のためにこの最近の記事を参照してください:

FactoryBeanとは何ですか?

于 2011-09-01T10:52:35.340 に答える