我有以下 Spring bean 用于在 xml 中定义的远程 Web 服务:
<bean id="authWSTemplate" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean" abstract="true">
<property name="serviceInterface" value="com.example.webservices.Authentication" />
<property name="wsdlDocumentUrl" value="${ws.root}/authentication?wsdl" />
<property name="namespaceUri" value="http://security.webservices.example.com/" />
<property name="serviceName" value="AuthenticationWebService" />
<property name="portName" value="AuthenticationPort" />
<property name="maintainSession" value="true" />
</bean>
如何获取这个 bean 模板并创建一个具体的 bean(即提供 root 属性)?然后我可以将混凝土豆放入 Spring 容器中吗?
我需要许多指向不同系统的具体 bean,所以我有不同的根值。对于此示例,假设有 2 个具有根的系统:http://domain1.com:8001/ws和http://domain2.com:8002/ws。
因此,我想要 2 个名为“authWSdom1”和“authWSdom2”的 bean。
我期望在应用程序初始化块中以编程方式执行此操作,在那里我将检索所有已知系统实现的列表(此信息仅在运行时知道),并为每个 impl 创建一个 bean,缓存 bean 名称,然后我的应用程序将在需要时从 Spring 容器中检索适当的 bean。
或者,有更好的模式吗?也许通过在 bean 的构造函数中提供根值?
我在想我不能在 Spring 中拥有一个 bean,因为我需要支持跨多个端点的并发访问(即多个用户同时访问 domain1 和 domain2)。