Spring bootでapple.ymlプロファイルを取得する


実際の開発では、環境設定をymlにしますが、私たちはどのようにymlの値を取得しますか?
まず3種類のymlをください
mavenDemo:
  port: 80
mavenDemo1:
  super: 
    port: 81
mavenDemo2:
  List: 
    - port: 82
    - port: 83
例えば、このようなymlフォーマットはどのようにそれぞれの値を取得しますか?
方式1:@Valueの注釈を使う方式.
public class DemoProperties {
    @Value("${mavenDemo.port}")
    private Integer port;//  yml   :80

    @Value("${mavenDemo.port:8080}")
    private Integer defaultPort;//    yml   80,            8080

    @Value("${mavenDemo1.super.port}")
    private Integer superPort;//  mavenDemo->super->port  81

    @Value("${mavenDemo2.List[0].port}")
    private Integer ListPort;//  mavenDemo2  List      port  :82
}
方式1:@ConfigrationProptiesの注釈を使う方式.
mavenDemo:
  port: 80
  debugPort: 81
mavenDemo1:
  List: 
    - port: 82
      debugPort: 8282
    - port: 83
      debugPort: 8383
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = DemoProperties.PREFIX)
public class DemoProperties {
    public static final String PREFIX    = "mavenDemo";

    private Integer port;   //80
    private Integer debugPort; //81
}
コードの中に上のタイプを使うときは、注入方式を使うことができます.
@Autowired
DemoProperties     demoProperties ;
Listに対するこのような
@Data
@ConfigurationProperties(prefix = DemoProperties.PREFIX)
public class DemoProperties {
    //    yml   
    public static final String PREFIX    = "mavenDemo1";
    List listProperties = new ArrayList();;
}
@Data
class PortProperties{
    private Integer port;
    private Integer debugPort;
}
 
より詳細なのはこの記事を参照することができます.https://juejin.im/post/5b0440a5f265da0b886dc2e9