1. 在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量的定义,参数的设置等。下面来说说两者的区别。
application.properties 配置文件在写的时候要写完整,如:
 
 
spring.profiles.active=dev
spring.datasource.data-username=root
spring.datasource.data-password=root
 
 
在yml 文件中配置的话,写法如下:
  
 
 
spring:
  profiles:
    active: prod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: root

yml 文件在写的时候层次感强,而且少写了代码。所以现在很多人都使用yml配置文件。

2. 在项目中配置多套环境的配置方法。
因为现在一个项目有好多环境,开发环境,测试环境,准生产环境,生产环境,每个环境的参数不同,所以我们就可以把每个环境的参数配置到yml文件中,这样在想用哪个环境的时候只需要在主配置文件中将用的配置文件写上就行如下:
 
 
spring:
  profiles:
    active: prod 
这行配置在application.yml 文件中,意思是当前起作用的配置文件是application_prod.yml,其他的配置文件命名为 application_dev.yml,application_bat.yml等。

3. 项目启动的时候也可以设置 Java -jar xxxxxx.jar spring.profiles.actiove=prod 也可以这样启动设置配置文件,但是这只是用于开发和测试。

4. 配置文件数据的读取:
比如我在文件中配置了一个
 
 
massage:
  data:
    name: qibaoyi
我在类中想要获取他 需要这样去写:
 
 
@Value("${message.data.name}")
private String name;

后面你取到变量name 的值就是配置文件中配置的值。

5. 大家需要注意一点,配置文件中参数的写法:name: qibaoyi中间是有一个空格的,在IDEA 编译器中它会提醒你的。
 
 
server:
  prot: 8888  #配置访问的端口
  servlet:
    context-path: /xxx  #配置访问时的项目名

spring:
  devtools:      
    restart:
      enabled: true  #这个好像是热加载,每次代码有改动就自动重启,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
  datasource:
    url: jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=UTF-8&useSSL=true  #配置数据库的路径
    username: root  #数据库登录名
    password: root   #登陆密码
    type: com.alibaba.druid.pool.DruidDataSource  #这个可以看一下  
    driver-class-name: com.mysql.jdbc.Driver
    filters: stat
    maxActive: 20  #连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制
    initialSize: 1  #连接初始值,连接池启动时创建的连接数量的初始值
    maxWait: 60000
    minIdle: 1  #最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: select 'x'
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true   #是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存
    maxOpenPreparedStatements: 20

    jackson:
      date-format: yyyy-MM-dd HH:mm:ss
      time-zone: GMT+8

mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.yudao.platform.entity.*
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 0
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: false
    #刷新mapper 调试神器
    refresh-mapper: true
    #数据库大写下划线转换
    #capital-mode: true
    # Sequence序列接口实现类配置
    #key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
    #逻辑删除配置
    logic-delete-value: 1
    logic-not-delete-value: 0
    #自定义填充策略接口实现
    #meta-object-handler: com.baomidou.springboot.xxx
    #自定义SQL注入器
    # sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true