2017-10-24 11 views
0

私はWebコンテナ(Tomcat)で動作するSpringアプリケーションを持っています。このSpringアプリケーションのプロパティは、データベースJDBCの場所を見つけるために、ファイルを使用しています。Spring&Maven - Springアプリケーションにカスタムプロパティを提供する方法

app.propertiesで
@Configuration 
@PropertySource("classpath:app.properties") 
public class MyApplication { 
} 

、私が持っている:

database.dataSource.url=jdbc:postgresql://localhost:5432/app 

それは、実行時に値を取得するために今すぐ簡単です:

@Component 
class DatabaseConfiguration { 
    @Value("${database.dataSource.url}") 
    private String URL; 
} 

これまでのところ、とても良いです。今では、統合テスト中にWARをデプロイするためにcargo-maven2-pluginプラグインを使用しています。 WARがデプロイされる前に、adhoc PostgreSQLデータベースがdocker-maven-pluginプラグインを介してDockerコンテナにデプロイされます。このインスタンスは、通常の5432ではなくカスタムの動的ポートで実行されます。このポートは、docker-maven-pluginプラグインによって${database.port}プロパティに入力されます。

これは、このポートを入力するために何とかapp.propertiesをオンザフライで変更する必要があることを意味します。これはハックだと思われるので、を介してSpringアプリケーションにポートを提供/オーバーライドする方法があるので、app.propertiesの代わりにそのポートを使用できますか?

これを達成するための「クリーンな」方法は何ですか?

答えて

関連する問題