02 Spring Bootプロファイルの詳細


02 Spring Bootプロファイルの詳細
  • 文章指導
  • 学習ノート
  • ラーニングコード
  • カスタムプロパティー
  • src/main/java/resourcesディレクトリの下にアプリケーション.propertiesまたはアプリケーション.yml
  • を作成
  • アプリケーション.ymlでプロパティのセットをカスタマイズする
  • my:
     name: boot
     age: 12
  • プロファイルの値を読み込むには@Value("${属性名}")
  • を追加するだけです.
    @RestController
    public class ConfigController {
    
        @Value("${my.name}")
        private String name;
        @Value("${my.age}")
        private int age;
    
        @RequestMapping(value = "/config")
        public String config(){
            return name+":"+age;
        }
    }
    
  • プロジェクトを開始し、アクセス:localhost:8080/config
  • プロファイルのプロパティをエンティティークラスに割り当てる
  • 構成に多くの属性がある場合、これらの属性をフィールドとしてjavabeanを作成し、
  • に属性値を付与することができる.
    my:
      name: boot
      age: 20
      # ${random} ,              。
      number:  ${random.int}
      uuid: ${random.uuid}
      max: ${random.int(10)}
      value: ${random.value}
      greeting: hi,i'm  ${my.name}
    
  • javabeanを作成し、注記@ConfigurationProperties(prefix="my")
  • を追加
    @ConfigurationProperties(prefix = "my")
    public class ConfigBean {
        private String name;
        private int age;
        private int number;
        private String uuid;
        private int max;
        private String value;
        private String greeting;
        get...set...  
          idea    get,set toString
    }
  • アプリケーションクラスまたは起動クラスに注釈
  • を追加
    @EnableConfigurationProperties({ ConfigBean.class })
  • ConfigBeanControllerクラス
  • を追加
    @RestController
    public class ConfigBeanController {
        @Autowired
        private ConfigBean configBean;
        @RequestMapping("/configbean")
        public String config(){
            //         
            return  configBean.toString();
        }
    }
  • プロジェクトの開始、アクセスhttp://localhost:8080/configbean

  • カスタムプロファイル
  • アプリケーションプロファイルはシステムのデフォルトです.test.properties(test.ymlではなく、テストではデータが読めません)などの他の名前のプロファイルを追加できます.
  • com.boot.name=boot
    com.boot.age=20
  • TestBeanを追加するには、ファイル名と接頭辞
  • を指定する必要があります.
    @Configuration
    @PropertySource(value = "classpath:test.properties")
    @ConfigurationProperties(prefix = "com.boot")
    public class TestBean {
        private String name;
        private int age;
          get,set,tostring
    }
  • TestBeanController
  • を追加
    @EnableConfigurationProperties({TestBean.class})
    @RestController
    public class TestBeanController {
        @Autowired
        private  TestBean testBean;
        @RequestMapping("/testconfig")
        public String testConfig() {
            return testBean.toString();
        }
    }
    
  • プロジェクトを開始し、http://localhost:8080/testconfig

  • 複数の環境プロファイル
  • 現実的な開発環境では、異なる構成環境が必要です.フォーマットはアプリケーション-{profile}.propertiesで、{profile}は
  • などの環境IDに対応します.
  • アプリケーション-test.properties:テスト環境
  • アプリケーション-dev.properties:開発環境
  • アプリケーション-prod.properties:生産環境
  • 実際に使用されているプロファイルは、アプリケーション.ymlで追加することによって:
  •  spring:
      profiles:
        active: dev
  • アプリケーション-dev.yml
  • を追加
    my:
      name: dev
      age: 11
    #server:
    #  port: 8082
  • 起動プログラム、アクセスhttp://localhost:8080/config、アプリケーション-dev.ymlの構成
  • が読み込まれていることがわかりました.
  • アクセスhttp://localhost:8080/configbeanアプリケーション-dev.ymlとアプリケーション.ymlに重複するフィールドがある場合、前者は後者の値を上書きすることがわかります.
  • ConfigBean{name='dev', age=11, number=-1422131996, uuid='5bebc511-f1a4-4f2b-95ed-540e4b48e8bd', max=0, value='8b96a5bbde492fb189e4fa52573c9caf', greeting='hi,i'm dev'}

    転載先:https://www.cnblogs.com/wang7/p/10776334.html