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键来缩进,否则启动会报错。



  • 2020-03-19 17:12:40

    百度地图放大覆盖物消失

    产生问题的原因是因为我们用的普通的点数组生成的多边形,我们应该用百度的点数组生成就没问题了。

  • 2020-03-19 19:15:47

    vue中methods watch和compute的区别和联系

    首先要说,methods,watch和computed都是以函数为基础的,但各自却都不同 而从作用机制和性质上看,methods和watch/computed不太一样,所以我接下来的介绍主要有两个对比: 1.methods和(watch/computed)的对比

  • 2020-03-19 19:50:31

    用vue做的跟随鼠标移动的div

    随鼠标移动的动画效果,之前一直使用angular和react,没怎么接触过vue,先做一个vue的简单例子,然后再整合。

  • 2020-03-20 13:35:55

    随便想到,群聊天的数据库简单设计

    拆分成两个表,一个是消息的流水表,一个是每个人的配置表。 记录每个群下面的这个用户的最后读取的消息last_msg_id,然后在计算消息未读数据。 这样优化之后数据将减少好多,数量是 m+n条数据。不在是成倍增长了。

  • 2020-03-20 13:39:50

    类似与微信朋友圈功能数据库如何实现

    每次发圈子的时候,给关注我的每个uuid,发一个内容id。 大概表的设计就是 uuid,idlist 这样的,idlist是按照时间顺序的。 然后定期删除idlist过多的老圈子。

  • 2020-03-21 00:11:38

    Android卡片布局(圆角阴影)的几种实现及分析

    在开发中,为了界面美观,圆角view和阴影效果是开发中经常遇到的UI场景,比如银行卡效果,卡片式itemView布局,Banner图等,开发中我们通过各种方式实现了这种效果,但是哪种方案最好呢,接下来本文将比较几种常见的圆角阴影布局实现,并从内存占用角度分析它们的优缺点.

  • 2020-03-21 12:05:24

    android 自定义组件,使用AttributeSet

    首先要在res/values目录下建立一个attrs.xml(名字可以自己定义)的文件,并在此文件中增加对控件的属性的定义.其xml文件如下所示:

  • 2020-03-21 12:09:59

    Android使用AttributeSet自定义控件的方法

    我们可以在attrs.xml中声明自己控件的属性,在布局xml文档中声明自己的命名空间,这时就可以对设置自己想要的值了,然后在AttributeSet这个属性中获取对应的值。好了不多说,我们来看下代码,一切尽在不言中: