3.1補足:SpringBootプロパティの割り当て、JSR303検証、マルチ環境の設定、および設定ファイルの場所

プレースホルダを.YMAL、緩く結合し、エンティティ・クラスローディングプロファイル情報が割り当て属性に使用されています

  • プレースホルダ:  $ {} random.int 
  • 緩く結合:Dog.javaは犬の名前に対応する名前のdogName、YMAL属性
  • エンティティクラスのロードプロファイル情報:  @ConfigurationProperties(接頭辞=「犬」)  コンフィギュレーションファイルとエンティティクラスと年齢dogNameに割り当てられた年齢の犬の名前
パーソン:
  名前:qinjiang 
  年齢:$ {} random.int   #プレースホルダ値が設定
  幸せを:falseに
  誕生:2000/01/01 
  地図:{K1:V1、K2:V2} 
  リスト:
    -コード
    -ガール
    -ミュージック
  犬:犬名:カイ
    年齢:$ {} random.int 
犬:犬名:Aのname属性黄色#緩く結合
  年齢:5
    

  
@Component
 @ConfigurationProperties(接頭辞 =「犬」)
 パブリック クラス犬{
     プライベート文字列dogNameプライベート整数歳。

    パブリック犬(){ 
    } 

    公共犬(文字列dogName、整数年齢){
         この .dogName = dogName。
        この .age = 年齢; 
    } 

    パブリック文字列getDogName(){
         戻りdogNameと、
    } 

    公共 ボイドsetDogName(文字列dogName){
         この .dogName = dogName。
    }

    公共の整数getAge(){
         戻り値の年齢。
    } 

    公共 ボイドsetAge(整数年齢){
         この .age = 年齢。
    } 

    @Override 
    パブリック文字列のtoString(){
         戻り "犬{" + 
                "dogName =" '+ dogName + '\'' + 
                "年齢=" +年齢+ 
                '}' 
    } 
}

二.JSR 303の基本的な検証ルール

ブランクチェック 

  1. オブジェクトがヌルであるかどうかを確認@Null 
  2. NULLでないオブジェクトを検証@NotNull、検索は、長さ0のストリングの対象にすることはできません 
  3. 文字列の長さがあるチェック制約を@NotBlankはヌルトリムは、文字列のみ0より大きい場合、前後のスペースを削除しますではありません。 
  4. 制約要素がnullまたは空のチェック@NotEmpty。

Booelan検査 

  1. @AssertTrueブールオブジェクトが真であるかどうかを確認します 
  2. @AssertFalseブールオブジェクトが偽であるかどうかを確認します

長さチェック 

  1. @size(MIN =、最大=)認証オブジェクト(配列、コレクション、マップ、文字列)に所定の長さの範囲内かどうか 
  2. @Length(分=、最大=)注釈付きの文字列が含まminとmaxとの間で検証していること。

検査の日 

  1. @Past検証日付とCalendarオブジェクトが現在の時間の前に、検証が確立され、その後、注釈付き要素は、過去の日付でなければなりません 
  2. 現在の時刻後の日付とカレンダーオブジェクトは、検証が確立されているかどうかを確認@future、その後、注釈付き要素は将来の日付でなければなりません 
  3. 正規表現フラグ:Pattern.Flag指定された配列、正規表現の関連するオプションを示す文字列が正規表現の開発、正規表現と一致している満たすに正規表現のルール、注釈付き要素をオブジェクト検証@Pattern。

チェック値は 
フォームが「」ときint型に変換することはできませんが、Stirngに変換することができ、「整数がnull、」ので、int型での使用はお勧めできません、Stirng、整数型に推奨しました 

  1. 番号と文字列オブジェクト検証@Minが大きく指定された値に等しいです。 
  2. @Max番号と文字列が指定された値に等しい小さなオブジェクトかどうかを確認 
  3. @DecimalMax値が最大値を指定された制約を超えてはなりません標識。この制約パラメータは最大のBigDecimal表現プレゼンス小数精度によって定義された文字列であります 
  4. @DecimalMin標識された値は、以下の最小指定された制約よりもあってはならない。この制約は、最小BigDecimalの文字列表現プレゼンス小数精度によって定義されたパラメータであります 
  5. 数値と文字列の@Digitsは、憲法の合法性を確認します 
  6. interger精度整数指定@Digits(整数=、分数=)列番号の確認コンプライアンスが指定されているフォーマットは、分数小数精度を指定します。 
  7. @Rangeは(MIN =、最大=)要素は、適切な範囲内にあることが指定されています 
  8. @Range(MIN = 10000、最大= 50000、メッセージ=」range.bean.wage」) 
  9. 関連するオブジェクトは要素が再帰的にチェックし、それが地図である場合、チェックサム部分の値がされている、請求セット又はアレイである場合、関連するオブジェクトに@Validは再帰的にチェック(認証再帰か) 
  10. @CreditCardNumberクレジットカードの検証 
  11. nullの場合は、検証せずに、@emailのメールアドレスかどうかを検証回数を確認してください。 
  12. @ScriptAssert(LANG =スクリプト=別名=) 
  13. @URL(プロトコル=、ホスト=、ポート=、正規表現=、フラグ=)

コード・ショー:

  1. @Validatedのためのデータチェック
  2. @emailプロパティは、電子メール形式でなければなりません設定しました
1  @Component
 2 @ConfigurationProperties(接頭辞= "人" 3  @Validated
 4  パブリック クラス人{
 5  
6      @email()
 7      プライベート文字列名。
8      プライベート整数歳。
9      プライベートブール幸せ。
10      プライベート日の誕生。
11      民間地図<文字列、オブジェクト> マッピングします。
12      プライベートリストの<Object> リスト;
13      プライベート犬の犬。
14  
15      公衆人(){
 16     }
 17  
18      公共者(文字列名、整数の年齢、ブール幸せ、日付の誕生、地図<文字列、オブジェクト>マップ、リストの<Object> リスト、犬の犬){
 19          この .nameの= 名前;
20          この .age = 年齢;
21          この .happy = 幸せ。
22          この .birth = 誕生。
23          この .maps = マップ。
24          この .lists = リスト。
25          この .dog = 犬。
26      }
 27  
28      公共の文字列のgetName(){
 29         リターン名。
30      }
 31  
32      公共の ボイドのsetName(文字列名){
 33          この .nameの= 名前。
34      }
 35  
36      公共の整数getAge(){
 37          リターン年齢。
38      }
 39  
40      公共 ボイドsetAge(整数年齢){
 41          この .age = 年齢。
42      }
 43  
44      パブリックブールgetHappy(){
 45          リターン幸せ。
46      }
 47  
48     公共 のボイドsetHappy(ブール幸せ){
 49          この .happy = 幸せ。
50      }
 51  
52      公衆日getBirth(){
 53          リターン誕生。
54      }
 55  
56      公共 ボイドsetBirth(日誕生){
 57          この .birth = 出生。
58      }
 59  
60      パブリックマップの<string、オブジェクト> getMaps(){
 61の         リターンマップ。
62      }
 63  
64      公共 のボイドsetMaps(MAP <文字列オブジェクト>がマッピング){
 65          この .maps = マッピングします。
66      }
 67  
68      公衆リスト<OBJECT> getLists(){
 69の         リターンリスト。
70      }
 71の 
72      公共 ボイドセットリスト(一覧<OBJECT> リスト){
 73          この .lists = リスト。
74      }
 75  
76      公衆犬getDog(){
 77          リターン犬。
78      }
 79  
80      公共 ボイドsetDog(犬犬){
81          この .dog = 犬。
82      }
 83  
84      @Override
 85      公共の文字列のtoString(){
 86          リターン "人{" +
 87                  "名=" '+名+ '\'' +
 88                  "年齢=" +年齢+
 89                  "幸せ=" +幸せ+
 90                  "誕生=" +誕生+
 91                  "マッピングさ=" +マップ+
 92                  "リスト=" +リスト+
 93                  "犬=" +犬+
 94                  '}' ;
95      }
 96 }

ソースの場所:

コンフィギュ3マルチプロファイルの場所と環境

1.位置(位置4)の構成

  1. file:./config/  ,项目目录下建立一个config文件夹,config文件夹下建立application.yaml
  2. file:./  ,项目目录下直接建立一个application.yaml
  3. classpath:/config/    ,resources下建立一个config文件夹,config文件夹下建立application.yaml
  4. classpath:/     ,resources下直接建立一个application.yaml

2.設定優先度:減少から上記の順(  ファイル:./設定/  >  ファイル:./  >   CLASSPATH:/ configに/  >  CLASSPATH:/  )

設定環境を指定する3.複数の設定ファイル

  1. application.yaml:指定するために使用されるコンフィギュレーション・ファイルその活性化(アプリケーションxxx.yaml、活性化されたXXXに結合しています)

  2. アプリケーションtest.yaml:指定サービスポート番号8082

  3. アプリケーションdev.yaml:指定サービスポート番号8081

マルチファイル構成の簡素化4.YMAL

ファイルには、3本の横線で区切られた、解決することができます

自動組立の深い理解

エッセンス:

1)、SpringBootは自動的にクラスの多くをロードするように構成し始めるだろう

2)、我々はSpringBoot間で書かれたデフォルトの自動設定のクラスが存在しない関数に必要なことを確認します。

3)、我々は、構成要素が端に配置された自動コンフィギュレーション・クラスを見て、(長い我々は、コンポーネントがその中に現在の使用と同様に、我々は、手動で設定する必要はありません)

自動コンフィギュレーションクラスは、コンポーネントを追加するとき4)は、容器へのクラスのプロパティから特定のプロパティを取得します。私たちは、設定ファイルにこれらのプロパティの値を指定する必要があります。

xxxxAutoConfigurartion:自動コンフィギュレーションクラス、コンポーネントを容器に添加します

xxxxProperties:カプセル化設定ファイル関連の属性。

application.yaml:プロパティspringbootを変更するための

6.レビューの設定を有効にすると有効にならないもの

(1)application.yaml設定  デバッグ:真 

(2)のみにのpom.xmlにスターターを追加する必要が有効になります

類似:春・ブート・スターター-XXX

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

おすすめ

転載: www.cnblogs.com/zhihaospace/p/12348283.html
おすすめ