springBoot 配置文件的使用

  1. 概述

  • 文件种类

配置文件有三种
- application.properties
- application.yml (推荐使用)
- application.yaml

  • 文件的优先级

当3种配置文件都在的时候,对某个功能的配置优先级
application.properties > application.yml > application.yaml

  • 文件的书写方式

  • application.properties

serve.port=8080
  • application.yml英文冒号后面必须空隔后接配置数据(port后面是空隔后接80端口数据),有层级是是用空隔隔开(不是tab,例如下面port前面是空隔不是tab)

server:
  port: 80 #冒号后面必须空隔,前面也是空隔

subject:
    - Java
    - 前端
    - 大数据

enterprise:
    name: itcast
    age: 16
    subject:
        - Java
        - 前端
        - 大数据
likes: [王者荣耀,刺激战场]            #数组书写缩略格式

users:                             #对象数组格式一
  - name: Tom
       age: 4
  - name: Jerry
    age: 5

users:                             #对象数组格式二
  -  
    name: Tom
    age: 4
  -   
    name: Jerry
    age: 5      
          
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]    #对象数组缩略格式
  • application.yaml:使用上与.yml基本没有什么区别

server:
  port: 80 #冒号后面必须空隔,前面也是空隔

  1. 自定义配置文件

(1)直接项目管理中配置

一般情况下,直接在resources文件夹下创建上述的3个文件都会自动识别为配置文件(文件名不能有错),我们也可自己命名,将它设置为配置文件

  • a. 创建一个自己命名的yml文件(其他两种也行),这处为myPro,yml

  • b. 进入项目结构(Project Structure)

  • c. 点击spring标志,圈起来的

  • d. 点击添加自定义配置文件

  • 然后选择自己的配置文件,点击确认,应用,spring标志出来就可以了

(2)命令行配置

通过直接参数的直接写入

  1. 获取配置文件的信息

注意:这里使用的是yml的配置文件,其他的自己测哦,下面是自定义配置

lesson: SpringBoot

# 对象型
user:
  id: 1
  name: admin
  password: 123456

#列表型
subject:
  - JAVA
  - C++
  - JS
# subject: [JAVA,C++,JS] 和上面效果一样
读取单一数据

读取数据的形式${一级属性名.二级属性名……}

@Value("${lesson}")
private String lesson;

@Value("${user.id}")
private String userId;

@Value("${subject[1]}")
private String subject_01;

// SpringBoot
// 1
// C++
读取全部数据

数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法时getProperties(String),参数填写属性名即可

// 读取全部的配置信息
@Autowired
private Environment env;

System.out.println(env.getProperty("lesson"));
System.out.println(env.getProperty("user.id"));
System.out.println(env.getProperty("subject[0]"));

// 结果
SpringBoot
1
JAVA
读取数据对象
  • 创建配置对象类,这里创建user的配置类

user:
  id: 1
  name: admin
  password: 123456
@Component
// prefix是前缀user,对应上面 形式=>一级属性名.二级属性名 
@ConfigurationProperties(prefix = "user")
public class UserProperties {
    private int id;
    private String name;
    private String password;
}

可能需要引入坐标(ConfigurationProperties)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
  • 使用配置对象

@Autowired
private UserProperties userProperties;

System.out.println(userProperties.getId());
System.out.println(userProperties.getName());
System.out.println(userProperties.getPassword());
yml文件中数据相互引用
center:
    dataDir: D:/usr/local/fire/data
    tmpDir: D:/usr/local/fire/tmp
    logDir: D:/usr/local/fire/log
    msgDir: D:/usr/local/fire/msgDir

直接通过${一级属性名.二级属性名……}

baseDir: /usr/local/fire
center:
 dataDir: ${baseDir}/data
 tmpDir: ${baseDir}/tmp
 logDir: ${baseDir}/log
 msgDir: ${baseDir}/msgDir
  1. 设置临时属性

说明:配置文件编写好后,可能会有暂时的配置信息的改动这时我们需要设置临时配置信息

  • 启动时添加对应的参数,多个属性用空格隔开

java –jar springboot.jar –-server.port=80 --logging.level.root=debug
  1. 多环境开发问题

(1)单一文件

这种比较少见

spring:
    profiles:
        active: pro        # 启动pro
---
spring:
    profiles: pro
server:
    port: 80
---
spring:
    profiles: dev
server:
    port: 81
(2)多文件开发yml

命名规则application-环境名.yml,properties版本和这个就是写法不一样,在这里就不写了

  • 主配置文件application.yml

spring:
    profiles:
        active: pro        # 启动pro
  • 开发环境配置文件application-dev.yaml

server:
    port: 80
  • 生产环境配置文件application-pro.yaml

server:
    port: 81
  • 测试环境配置文件application-test.yaml

server:
    port: 82
(3)独立配置文件

为了方便进一步管理,可以在进行细化

  • 主配置文件application.yml

spring:
    profiles:
        active: dev
        group:
            "dev": devDB,devRedis,devMVC
            "pro": proDB,proRedis,proMVC
            "test": testDB,testRedis,testMVC
  • 下面创建其他的配置文件名,在同一文件夹下

application-dev.yaml
application-devDB.yaml
application-devRedis.yaml
application-devMVC.yaml
application-pro.yaml
application-proDB.yaml
application-proRedis.yaml
application-proMVC.yaml
application-test.yaml
application-testDB.yaml
application-testRedis.yaml
application-testMVC.yaml
  1. 文件的级别

  • 配置文件的的级别

- 类路径下配置文件(一直使用的是这个,也就是resources目录中的application.yml文件)
- 类路径下config目录下配置文件
- 程序包所在目录中配置文件
- 程序包所在目录中config目录下配置文件

  • 优先级

1. file :config/application.yml 【最高】
2. file :application.yml
3. classpath:config/application.yml
4. classpath:application.yml 【最低】

  • 位置

classpath:程序包所在目录中配置文件的位置分布

file:类路径下,打包以后只要和jar包处于这种形式的文件结构,config里面的配置文件级别比外面的高,但都比项目里的配置文件优先级高

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值