我想动态地从DB传递属性的值标记中的值.这在春天有可能吗?如何 ?
例如,在下面的配置中.
<bean id="proxyFactory" class="org.apache.cxf.jaxws.JaxWsProxyfactorybean"> <property name="serviceClass" value="WSDLURL"/> <property name="address" value="WSDLURL"/> <property name="username" value="username"/> <property name="password" value="password"/> </bean>
我想要上面提到的id为“proxyFactory”的bean的属性,即< WSDLURL>和<用户名>和<密码>从数据库中取出并动态传递给它.
解决方法
您可以编写另一个Java类并将其作为应用程序上下文中的bean使用,并使用Spring Expression Language,您可以评估并获取方法调用的输出.
XML配置:
<property name="serviceClass" value="#{webServiceInfoFromDB.wsdlUrl}" /> <property name="username" value="#{webServiceInfoFromDB.username}" />
WeServiceInfoFromDB.java类:
class WebServiceInfoFromDB { public String getWsdlUrl() { // Get the Wsdl URL from DB. return wsdlUrl; } public String getUsername(){ // get the username from DB return username; }
应用程序上下文中的XML配置
<bean id="webServiceInfoFromDB" class="WebServiceInfoFromDB"> <property name="dataSource" ref="dataSource"/> </bean>