Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

database - how to pass values dynamically in config file

I want to pass the value in the value tag of the property dynamically from the DB. Is this possible in Spring? And how ?

For example in the configuration below.

<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>

I want the properties mentioned above for the bean with id "proxyFactory", i.e. <WSDLURL> and <username> and <password> to be taken from the DB and passed here dynamically.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can write a another Java class and make it as a bean in Application context and using Spring Expression Language, you have evaluate and get output of the method call.

XML configuration:

<property name="serviceClass" 
                 value="#{webServiceInfoFromDB.wsdlUrl}" />
<property name="username" 
                 value="#{webServiceInfoFromDB.username}" />

WeServiceInfoFromDB.java class:

class WebServiceInfoFromDB {

   public String getWsdlUrl() {
      // Get the Wsdl URL from DB.
      return wsdlUrl;
   }

   public String getUsername(){
      // get the username from DB
      return username;
   }

XML configuration in application context:

<bean id="webServiceInfoFromDB" class="WebServiceInfoFromDB">
   <property name="dataSource" ref="dataSource"/>
</bean>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...