springboot複数のプロファイルをロードする
6674 ワード
記事の目次文章は を参照してください。デフォルトのプロファイル springbootは、複数のプロファイルを同時にロードする方法を説明します。 は、プロファイルの属性をエンティティクラス に割り当てる。カスタムプロファイル 文章の参考 SpringBootプロファイルの詳細
標準設定ファイル
私たちはspringbootプロジェクトを作成する時、システムはデフォルトで私たちのためにsrc/main/Java/resourceディレクトリの下でappication.propertiesを作成します。
どのように複数のプロファイルを同時に読み込むか? springbootデフォルトは、src/main/resourceフォルダにappration.propertiesデフォルトプロファイルをロードする です。
フォーマットはappication-{profile}.propertiesです。ここではあなたの環境標識に対応しています。 appication.propertiesにspring.profiles.active=devを追加して、database システムは、src/main/resourceディレクトリの下のappration.properties appration-database.properties appration-dev.propertiesの3つのプロファイルをロードしました。
プロファイルの属性をエンティティクラスに割り当てます。 appication-dev.propertiesファイル内容 javaエンティティクラス
カスタムプロファイル
上で紹介したのは配置ファイルをappication.ymlに書いています。時々私達は配置をすべてappicationの配置ファイルに書きたくないです。この時、私達がカスタマイズした配置ファイルが必要です。例えば、test.properties:@Configration @PropertySource(value=「classipath:test.properties」) @ConfigrationPropties(prefix=「comp.forezp」)1.4バージョンでは が必要です。
標準設定ファイル
私たちはspringbootプロジェクトを作成する時、システムはデフォルトで私たちのためにsrc/main/Java/resourceディレクトリの下でappication.propertiesを作成します。
どのように複数のプロファイルを同時に読み込むか?
フォーマットはappication-{profile}.propertiesです。ここではあなたの環境標識に対応しています。
# , application.properties application-database.properties application-dev.properties
spring.profiles.active = dev,database
プロファイルの属性をエンティティクラスに割り当てます。
dev.name=liumei
package com.hb.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="dev")
public class DevConfig {
// application-dev.properties dev.name
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@ConfigrationProperties(prefix=「dev」)は、すべての設定情報の中のdev.nameをロードする値を意味する。nameの属性はgetとsetの方法が必要です。カスタムプロファイル
上で紹介したのは配置ファイルをappication.ymlに書いています。時々私達は配置をすべてappicationの配置ファイルに書きたくないです。この時、私達がカスタマイズした配置ファイルが必要です。例えば、test.properties:
com.forezp.name=forezp
com.forezp.age=12
このプロファイルの情報をJavabeanにどうやって付与しますか?@Configuration
@PropertySource(value = "classpath:test.properties")
@ConfigurationProperties(prefix = "com.forezp")
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
最新バージョンのspringbootには、この3つの注釈が必要です。