この application.properties からいくつかのプロパティを読み取り、構成プロパティとして Java/Spring アプリケーションに追加するクラスがあります。私が今達成しようとしているのはこれです: パッケージをクライアントに配信し、この application.properties 内にデータベース接続の詳細があるため、クライアントはそれらを変更できます。問題は、.war ファイルを作成した後の段階でこれを実行できるかどうかです。したがって、基本的にクライアントは構成ファイルを変更し、展開時にこれらの構成が使用されるか、.war ファイルをビルドする前にこれを行う必要があります。添付すると、私の解決策が表示されます:
//application.properties
#DB properties:
db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
db.url=jdbc:sqlserver://ip\\instance:port;databaseName=db_name
db.username=db_username
db.password=db_pass
//WebConfig.java
@Configuration
@PropertySource("classpath:application.properties")
public class WebAppConfig {
private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver";
private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";
private static final String PROPERTY_NAME_DATABASE_URL = "db.url";
private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";
@Resource
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));
return dataSource;
}