Pregunta

¿Puedo hacer algo como esto?

  <object id="mydb" type="string">
    <value>"blah"</value> <-- note that <value> tag does not really exist
  </object>

Para poder usarlo más tarde así:

  <object id="Someobject" type="Sometype">
    <property name="ConnectionString" ref="mydb"/>
  </object>

EDITAR: esta era la solución SpringFramework.NET que estaba buscando. Parece que allí también existe PropertyPlaceholderConfigurer. Gracias a todos.

¿Fue útil?

Solución

Utilice Spring PropertyPlaceholdConfigurer :

<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
   <property name="location" value="classpath*:/application.properties"/>
</bean>

 <bean id="Someobject" class="somepackage.Sometype">
   <property name="connectionString" value="${mydb}"/>
 </bean>

La configuración de SYSTEM_PROPERTIES_MODE_OVERRIDE permite anular la propiedad a través de la línea de comandos.

Otros consejos

Use marcadores de posición, por ejemplo, $ {magic} y defina la clave / valor en un archivo de propiedades junto con un PostProcessor. Google para el marcador de posición de postprocesador de primavera ...

No veo ninguna ventaja en tu camino en absoluto. Todo sigue siendo solo configuración.

A veces las personas externalizan las cadenas de conexión de la base de datos a un archivo .properties y las obtienen de esa manera. Creo que tiene más sentido que tu propuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top