Archivo de la etiqueta: PropertyPlaceHolder

Spring: Property Place Holder

Viendo que hay muy poca info sobre Spring en castellano (y menos sobre temas específicos), me dedicaré a escribir sobre ello.

Si uno no quiere modificar directamente los archivos XML, ya que para operadores esto quizás no sea lo mejor, y prefiere cambiar las propiedades principalse en un archivo .properties, esta es la forma de incluír esos .properties en Spring y llamar a los valores de sus variables:

gateway.properties

ioacceptor.port = 1235

applicationContext.xml

<!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd”&gt;
<beans>

<!– Property Place Holder Configuration –>
<bean class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
<property name=”locations”>
<value>classpath:com/banelco/gateway/context/gateway.properties</value>
</property>
</bean>

<bean class=”org.apache.mina.integration.spring.Binding”>
<property name=”address” value=”:${ioacceptor.port}“/>
<property name=”handler” ref=”iso8583Handler”/>
<property name=”serviceConfig”>
<bean class=”org.apache.mina.transport.socket.nio.SocketAcceptorConfig”>
<property name=”filterChainBuilder” ref=”filterChainBuilder”/>
<property name=”reuseAddress” value=”true”/>
</bean>
</property>
</bean>
</list>
</property>
</bean>
</beans>

Importante: si se desea utilizar mas de un PropertyPlaceHolder en el contexto, se le debe añadir la propiedad <property name=”ignoreUnresolvablePlaceholders” value=”true” />, para que los holders que no pueda resolver uno no tire excepción y pueda resolverlos el otro.

Idea: se pueden extenders las clases de PlaceHolder e implementar de nuevo sus métodos, por ejemplo, el getLocation(), para hacer rutas configuradas y que sólo tengan que poner el nombre del archivo 🙂

Anuncios