三、spring-boot配置

  1. spring-boot的默认配置文件位置为src/main/resources/application.properties
  2. spring-boot的配置文件除了可以使用传统的properties文件之外,还支持现在被广泛推荐使用的YAML文件。YAML采用的配置格式不像properties的配置那样以单纯的键值对形式来表示,而是以类似大纲的缩进形式来表示,下面是一段YAML配置信息:
    • 自定义web的服务端口号server.port=8888
    • 指定应用名spring.application.name=hello(该名字在后续spring cloud中会被注册为服务名)
  3. environments:
        dev:
            url:http://dev.bar.com
            name:Developer Setup
        prod:
            url:http://foo.bar.com
            name:My Cool App

    等价于

    environments.dev.url=http://dev.bar.com
    environments.dev.name=Developer Setup
    environments.dev.prod.url=http://foo.bar.com
    environments.dev.prod.name=My Cool App
  4. 除此之外,YAML还可以在一个单个文件中通过使用spring.profiles属性来定义多个不同的环境配置
    server:
        port:8881
    ---
    spring:
        profiles:test
    server:
        port:8882
    ---
    spring:
        profiles:prod
    server:
        port:8883

    解析:在指定环境为test时,server.port将使用8882端口,而在prod环境中,server.port将使用8883端口,如果没有指定环境,server.port使用8881端口

  5. 我们也可以在application.properties添加自定义参数,并在系统中通过@Value注解来加载
    book.name=mybook
    book.author=zhangsan
    @Component
    public class Book{
      @Value("${book.name}")
      private String name;
      @Value("${book.author}")
      private String author;
    
      //省略getter和setter          
    }
  6. 在application.properties中的各个参数之间可以直接通过使用PlaceHolder的方式来进行引用:
    book.name=mybook
    book.author=zhangsan
    book.desc=${book.author} is writing 《${book.name}》
  7. 使用随机数:
    ${random}的配置方式主要有以下几种,读者可以作为参考使用
    #随机字符串
    blog.value=${random.value}
    #随机int
    blog.number=${random.int}
    #随机long
    blog.bignumber=${random.long}
    #10以内的随机数
    blog.test1=${random.int(10)}
    #10~20的随机数
    blog.test2=${random.int[10,20]}
  8. 在启动命令中直接加入参数,比如 java -jar xxx.jar --server.port=8888,直接以命令行的方式来设置server.port属性,并将启动应用的端口设为8888
  9. 多环境配置:在spring-boot中多环境配置的文件名要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,如下所示
    • application-dev.properties:开发环境
    • application-test.properties:测试环境
    • application-prod.properties:生产环境
      至于具体哪个配置文件会被加载,需要在application.properties文件中的spring.profiles.active来设置,其值对应配置文件中的${profies}值。比如spring.profies.active=test就会加载application-test.properties文件的内容(spring.profiles.active=dev为默认值

ps:学习来自《spring cloud微服务实战》

猜你喜欢

转载自www.cnblogs.com/tiramisuyj/p/9326377.html