springboot ConfigurationProperties

Springbootは、ConfigurationPropertiesを使用して構成をオブジェクトにマップできます。サーバーリスト構成があるとすると、サーバーにはip、port、nameの3つのプロパティがあります。構成ファイルは次のとおりです。

servers.ips [ 0 ] = 127.00.1 
servers.ports [ 0 ] = 9090 
servers.names [ 0 ] = Server1 
servers.ips [ 1 ] = 127.00.2 
servers.ports [ 1 ] = 9092 
servers.names [ 1 ] = Server2

マッピングオブジェクトを作成し、@ ConfigurationPropertiesアノテーションを追加して構成ファイルに関連付けることができます

@ConfigurationProperties(" servers " public  class Servers {
     private List <String> ips;
    プライベートリスト<整数> ポート。
    プライベート List <String> 名。

    public  void setIps(List <String> ips){
         ifnull!= this .ips){
             return ; 
        } 
        this .ips = ips; 
    } 

    public  void setPorts(List <Integer> ports){
         ifnull!= this .ports){
             return ; 
        } 
        this .ports = ports; 
    } 

    public  void setNames(List <String> names){
         ifnull!= this .names){
             return ; 
        } 
        this .names = names; 
    } 

    public String getIp(int index){
         ipsを返します。get (インデックス); 
    } 

    public Integer getPort(int index){
        戻りポート。get (インデックス); 
    } 

    public String getName(int index){
        名前を返します。get (インデックス); 
    } 

    public  int count(){
         return ips.size(); 
    } 
}

データが空でない場合、データの設定は許可されず、データの変更を防ぐためのゲッターメソッドは提供されません。

構成マッピングをスキャンできるようにするには、@ Configurationアノテーションが付けられたクラスに@EnableConfigurationProperties(Servers.class)を追加する必要があります。@ Autowiredを直接使用して構成クラスを参照できます。

コード例は次のとおりです。

@RestController 
@EnableAutoConfiguration 
@Configuration(proxyBeanMethods = 
@EnableConfigurationProperties(サーバー。クラスパブリック クラスのHelloWorld { 

    @Autowired 
    プライベートサーバサーバ; 

    @RequestMapping(" / " 
    String listServers(){ 
        int count = servers.count(); 
        StringBuffer sb = new StringBuffer();
        forint i = 0 ; i <count; i ++ ){ 
            sb
                    .append(servers.getIp(i)). 
                    append(" " ). 
                    append(servers.getPort(i)). 
                    append(" " ). 
                    append(servers.getName(i)). 
                    append(" <br /> " ); 
        } 
        return sb.toString(); 
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 
        SpringApplicationアプリ = 新しい SpringApplication(HelloWorldの。クラス)。
        app.run(args);
    } 
}

http:// localhost:8080 /アクセスして、すべてのサーバーデータを確認します。

127.00.19090Server1に
 127.00.29092〜サーバー2

 

おすすめ

転載: www.cnblogs.com/yytxdy/p/12759788.html