spring boot中读取配置信息一

2019-11-18 23:18:49

一.application.yml文件


yml文件部分 start


01、首先我们都知道一个常识,那就是每个人都有自己的年龄,比如我们现在的业务需求是查询所有年龄大于20的人的相关信息,如果我们选择通过配置文件来配置这个值为20的常量的话,我们该如何配置和如何从配置文件中获取这个值呢?,application.yml的内容如下(注意 “age:“ 和 “20“ 之间需要一个空格,yml的语法 ):



server:  

  port: 8087  

  context-path: /springboot-yml-properties  

  

#年龄   

age: 20  

再controller文件中获取的方式:



   @Value("${age}")  

    private Integer age;  

下面是一个yml配置文件的灵活使用方法:



#年龄   

age: 20  

#姓  

lastName: 王  

content: "age: ${age}, lastName: ${lastName}"  

controller层数据获取:


 @Value("${age}")  

    private Integer age;  

      

    @Value("${lastName}")  

    private String lastName;  

      

    @Value("${content}")  

    private String content;  

  

    @RequestMapping("/test")  

    public String test() {  

        return content;  

    }  

多层:


#人  

person:  

  age: 20  

  lastName: 王  

  date: 2001-03-27 

controller层代码表示:


 @Value("${person.age}")  

    private Integer age;  

二、不同环境的配置dev,uat,prod


新建三个yml文件,分别为application-dev.yml,application-uat.yml,application-prod.yml.三个文件大同小异,dev为开发环境,uat为测试环境,prod为生产环境。application.yml文件根据不同环境改变profiles:active的值,使用不同的文件。


项目启动时可以添加java -jar web.jar spring.profiles.active=uat 来启动不同环境配置,但仅限于开发和测试环境,线上环境不允许这样操作。


dev配置如下


[html] view plain copy

server:  

  port: 8080  

  tomcat:  

    uri-encoding: utf-8  

spring:  

  thymeleaf:  

    mode: LEGACYHTML5  

    cache: false  

  jackson:  

    time-zone: GMT+8  

    date-format: yyyy-MM-dd HH:mm:ss  

  profiles:  

    active: dev  

  http:  

    multipart:  

      max-file-size: 30Mb  

      max-request-size: 30Mb  

  devtools:  

    restart:  

      enabled: true  

mybatis:   

  configuration:  

    map-underscore-to-camel-case: true  

  mapper-locations: mybatis/**/*Mapper.xml  

三、注意


1.spring只能出现一个


2.格式正确,同级要对齐


3.参数的写法:例如age: 20,冒号后面必须有空格否则会报错,idea编译器中会有提醒,eclipse并没有


4.编辑yml文件时不能使用TAB键来缩进,否则启动会报错。



  • 2019-09-11 15:28:07

    Node 性能优化

    硬盘的 IO 开销是非常昂贵的,硬盘 IO 花费的 CPU 时钟周期是内存的 41000000/250 = 164000 倍。 所有在一般应用中,优化要首先考虑数磁盘 IO , 通常也就是数据层的优化,说到数据库优化,很多人第一时间会想到加索引,但是什么加了索引查询会变快呢?索引要怎么加才合适呢?

  • 2019-09-11 16:49:56

    flex布局详解,Flex 布局语法教程

    布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现

  • 2019-09-12 16:32:19

    JSLint,JSHint,ESLint的区别

    主流的JS Lint工具及介绍 JavaScript已经发展蛮长时间了,对应的Lint工具也是层出不穷,下面介绍一下比较主流的几个Lint工具(其实是我用过的几个XD)

  • 2019-09-16 22:56:52

    java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法

    查询了相关资料,大部分都说引起的原因是JAR包错误或JAR包冲突,查看了配置文件,并没有发现错误之处,因为用的是maven工程,这让我想到了maven的JAR引用的传递性,应该是引用的JAR包中传递引用了相同的包,没有排除。通过mvn dependency:tree 命令查看当前工程引用的依赖JAR树