より良い、いくつかの記事はYMLデータ中心言う見て、SpringBootプロファイルはYML持っているとプロパティが2つです。個人的に私はので、ここでのプロパティの形式に一例であり、優れた特性を持つことを感じます。

だけなので、コード内で直接@valueを慣れるxxx.domain = www.xxx.comに構成され、このような特定のドメイン名と値を、、、設定している場合我々は、すべての比較、@valueノートは、構成プロファイルから読み取ることができます知っています便利。

それは、このようなコード関連の設定など関連する構成のグループがある場合は、認証コードの長さが設定可能であることを確認したい場合でも、コード、電話コード、メールアドレス認証コード検証画像は、あります。springboot構成としてかどうか、

以下のように記述を参照します:

確かにそう!

リファレンスソースは、見てみましょうのspringbootを行う方法で、学習するための最良の方法であります

カテゴリ構成サーバーへの対応:ServerProperties(問題を説明するために、部分的にしかメンバ変数を貼り付け)
 
   
コードをコピー
@ConfigurationProperties(接頭辞= "サーバー"、ignoreUnknownFields =真)
パブリッククラスServerProperties 
        実装EmbeddedServletContainerCustomizer、EnvironmentAware、{発注

    / ** 
     *サーバのHTTPポート。
     * / 
    プライベート整数ポート。

    @NestedConfigurationProperty   
    プライベート圧縮圧縮=新しい圧縮(); 

  //省略其他成员变量、ゲッター、セッター
コードをコピー
 
   
コードの圧縮ベースの一部:
コードをコピー
パブリッククラス圧縮{ 

    / ** 
     応答圧縮が有効になっている場合*。
     * / 
    プライベートブール値は=有効false;
コードをコピー

 お読みになった後は非常に明確にする必要があり、その理由ははserver.port = 8081、server.display名=書き込むことができ 、lhyapp、server.compression.enabled =真ので  ServerProperties  クラスの使用

 @ConfigurationProperties(接頭辞=「サーバー」、 ignoreUnknownFields =真) server.compression.enabled =真のあなたは、このタイプのような何かをしたい場合は、接頭辞接頭辞の設定ファイルを指定し、アノテーションは、次に我々は、クラスの評判を圧縮し、必要ServerProperties  このクラスで参照、属性名は、構成プロファイルの名前に対応しています。

 

 @ConfigurationProperties:

  SpringBoot対応する設定バインドのために、このクラスのすべての属性と設定ファイルを知らせる;
   接頭辞=「XXX」:以下のすべてが1つのマッピング属性れるプロファイルは

 唯一このコンポーネントがコンテナを提供するために、アセンブリのコンテナです@ConfigurationPropertiesは機能;
 @ConfigurationProperties(接頭辞=「XXX」)はグローバルデフォルトの設定ファイルから値を取得します。

上に述べた認証コード構成を実現するために、次の、あなたはクラスが必要:

コード:
CoreConfiguration.java
コードをコピー
@Configurationの
@EnableConfigurationProperties(SecurityProperties.class)
パブリッククラスCoreConfiguration { 

    //配置一些ビーン
    ビーン@ // 
    //パブリックXXXXのXXXX(){} 
}
コードをコピー
SecurityProperties.java
コードをコピー
@ConfigurationProperties(接頭辞= "MyAppの")
パブリッククラスSecurityProperties { 

    プライベートValidateCodePropertiesコード=新しいValidateCodeProperties()。

    公共ValidateCodePropertiesにgetCode(){ 
        戻りコード。
    } 

    公共ボイドSETCODE(ValidateCodePropertiesコード){ 
        this.code =コード。
    } 
}
コードをコピー
ValidateCodeProperties.java
コードをコピー
public class ValidateCodeProperties {

    private SmsCodeProperties sms = new SmsCodeProperties();

    private ImageCodeProperties image = new ImageCodeProperties();

    public SmsCodeProperties getSms() {
        return sms;
    }

    public void setSms(SmsCodeProperties sms) {
        this.sms = sms;
    }

    public ImageCodeProperties getImage() {
        return image;
    }

    public void setImage(ImageCodeProperties image) {
        this.image = image;
    }
}
コードをコピー
SmsCodeProperties.java
コードをコピー
public class SmsCodeProperties {

    private int length = 4;

    public int getLength() {
        return length;
    }

    public void setLength(int length) {
        this.length = length;
    }
}
コードをコピー
在application.properties 里配置
myapp.code.sms.length = 10
使用配置:
コードをコピー
  @Autowired
    private SecurityProperties securityProperties;

    @RequestMapping("/length")
    public @ResponseBody String length(){
        int length = securityProperties.getCode().getSms().getLength();
        return String.valueOf(length);
    }
コードをコピー