Contrôler un projet avec Maven et Spring: Comment définir un fichier de configuration Spring avec les profils Maven?

Je suis en train de configurer un Ressort fichier de configuration avec des informations de base de données basée sur le fait qu'un certain Maven profil est actif. J'ai vu des morceaux de réponses à cela, mais je vais avoir du mal à mettre tout cela ensemble.

J'ai un profil Maven comme ceci:

<profiles>
    <profile>
        <id>production</id>
        <activation>
            <property>
                <name>environment.type</name>
                <value>prod</value>
            </property>
        </activation>
    </profile>

    <profile>
        <id>development</id>
        <activation>
            <property>
                <name>environment.type</name>
                <value>dev</value>
            </property>
        </activation>

        <!-- Database properties for Spring -->
        <properties>
            <db.driver>oracle.jdbc.driver.OracleDriver</db.driver>
            <db.type>oracle</db.type>
            <db.host>192.168.0.0</db.host>
            <db.port>1521</db.port>
            <db.name>myDb</db.name>
            <db.url>jdbc:${db.type}:thin:@${db.host}:${db.port}:${db.name}</db.url>
        </properties>

Et un settings.xml fichier comme ceci:

<servers>
  <server>
    <id>development</id>
    <username>jsmith</username>
    <password>secret</password>
  </server>
</servers>

....

<profiles>
  <profile>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>

    <properties>
      <environment.type>dev</environment.type>
    </properties>
  </profile>
</profiles>

Et dans servlet-context.xml:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
    <property name="driverClassName">
        <value>${db.driver}</value>
    </property>

    <property name="url">
        <value>${db.url}</value>
    </property>

    <property name="username">
        <value>${db.username}</value>
    </property>

    <property name="password">
        <value>${db.password}</value>
    </property>

    <property name="maxActive">
        <value>10</value>
    </property>

    <property name="maxIdle">
        <value>1</value>
    </property>
</bean>

Ma question est, fondamentalement, comment puis-je obtenir les propriétés Maven dans le servlet-context.xml fichier? Ai-je besoin d'une .fichier de propriétés? Je connais un peu le filtrage dans Maven et PropertyPlaceholderConfigurer au Printemps mais je ne sais pas comment les mettre ensemble, ou vont-ils ensemble? Ou est-il un moyen plus simple?

source d'informationauteur ksnortum