Springbootは、ConfigurationPropertiesを使用して構成をオブジェクトにマップできます。サーバーリスト構成があるとすると、サーバーにはip、port、nameの3つのプロパティがあります。構成ファイルは次のとおりです。
servers.ips [ 0 ] = 127.0。0.1 servers.ports [ 0 ] = 9090 servers.names [ 0 ] = Server1 servers.ips [ 1 ] = 127.0。0.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){ if(null!= this .ips){ return ; } this .ips = ips; } public void setPorts(List <Integer> ports){ if(null!= this .ports){ return ; } this .ports = ports; } public void setNames(List <String> names){ if(null!= 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(); for(int 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.0。0.1〜9090〜Server1に 127.0。0.2〜9092〜サーバー2