0

プロパティのvalueタグの値を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 を持つ Bean の上記のプロパティ"proxyFactory"、つまり<WSDLURL>and <username>and<password>が DB から取得され、ここに動的に渡されるようにします。

4

2 に答える 2

1

別の 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>
于 2013-06-19T12:01:00.450 に答える
-1

キーと値のペアを含むプロパティ ファイル名を使用して、プロパティ プレース ホルダーを設定できます。

<context:property-placeholder location="config.properties" />

config.properties ファイルは次のようになります。

wsdl.url = http://server:8080/ServiceAccessPoint
webservice.username = guest
webservice.passward = guest123

${key} で Bean 定義を変更できるようになりました

<bean id="proxyFactory" 
class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="${wsdl.url}"/>
<property name="address" value="${wsdl.url}"/>
<property name="username" value="${webservice.username}"/>
<property name="password" value="${webservice.password}"/>

于 2013-06-19T09:17:41.167 に答える