特定の Maven プロファイルがアクティブかどうかに基づいて、データベース情報を使用して Spring 構成ファイルを構成しようとしています。これに対する回答を見てきましたが、すべてをまとめるのに苦労しています。
次のような Maven プロファイルがあります。
<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>
そして、次のような settings.xml ファイル:
<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>
および 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>
私の質問は基本的に、Maven プロパティを servlet-context.xml ファイルに取得するにはどうすればよいですか? .properties ファイルは必要ですか? Spring の Maven と PropertyPlaceholderConfigurer でのフィルタリングについては少し知っていますが、それらを組み合わせる方法がわかりません。それとももっと簡単な方法がありますか?