Das Ziel ist: In der Spring-Konfiguration Platzhalter verwenden, die je nach Maven-Profil anders belegt werden.
pom.xml, hier muss Filterung konfiguriert werden:
-  Properties definieren:
 [xml]
 <properties>
 <location>remote</location>
 </properties>
 [/xml]
-  Ersetzung aktivieren, im build-Baum der POM bzw. des jeweiligen Profils. Dies ersetzt in den spezifizierten Dateien Einträge der Form ${location}durch die entsprechenden Werte:
 [xml]
 <resources>
 <resource>
 <directory>src${file.separator}main${file.separator}resources</directory>
 <filtering>true</filtering>
 <includes>
 <include>**${file.separator}*.xml</include>
 <include>*.xml</include>
 <include>**${file.separator}*.properties</include>
 <include>*.properties</include>
 </includes>
 </resource>
 <resource>
 <directory>src${file.separator}main${file.separator}resources</directory>
 <filtering>false</filtering>
 <excludes>
 <exclude>**${file.separator}*.xml</exclude>
 <exclude>*.xml</exclude>
 <exclude>**${file.separator}*.properties</exclude>
 <exclude>*.properties</exclude>
 </excludes>
 </resource>
 </resources>
 [/xml]
Spring-Konfiguration (applicationContext.xml in WEB-INF/):
- placeholderConfigdefinieren:
 [xml]
 <bean id=”placeholderConfig”
 class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
 <property name=”locations”>
 <list>
 <value>classpath:ejb-configuration.properties</value>
 </list>
 </property>
 </bean>
 [/xml]
-  Variable verwenden:
 [xml]
 <jee:jndi-lookup id=”gradschoolManager” jndi-name=”GradschoolManagerBean/${location}”>
 <jee:environment>
 java.naming.factory.initial=org.jboss.naming.NamingContextFactory
 java.naming.provider.url=${java.naming.provider.url}
 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
 </jee:environment>
 </jee:jndi-lookup>
 [/xml]
Jetzt muss nur noch eine entsprechende Properties-Datei angelegt werden, z.B. unter /src/main/resources:
[xml]
java.naming.provider.url=${java.naming.provider.url}
location=${location}
[/xml]
Wie läuft das ab?
Bei einem Maven-Lauf werden zunächst die Variablen in der Properties-Datei ersetzt. Spring ist so konfiguriert, dass die (ersetzten) Werte aus dieser Datei gelesen und genutzt werden.