SpringBoot(二):基础配置文件、yaml语法、多环境开发配置

目录

一、配置文件

1、配置文件格式

2、自动提示功能失灵解决方案

3、SpringBoot配置文件加载顺序

二、yaml

1、yaml介绍

2、yaml语法规则

3、yaml数组数据

4、yaml数据读取

三、多环境开发配置

1、多环境启动配置

2、多环境启动命令格式

3、多环境开发控制 

四、配置文件分类 

1、SpringBoot中4级配置文件

2、作用


一、配置文件

1、配置文件格式

SpringBoot提供了多种属性配置方式

        application.properties

server.port=80

         application.yml

server:
  port: 81

         application.yaml

server:
  port: 82

2、自动提示功能失灵解决方案

(1)文件-项目结构

(2)Facet-选项目对应spring-点spring自定义按钮 

(3)选中没有导入的配置文件-确认

3、SpringBoot配置文件加载顺序

application.properties > application.yml > application.yaml

1. SpringBoot核心配置文件名为application
2. SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性

二、yaml

1、yaml介绍

(1)YAML(YAML Ain't Markup Language),一种数据序列化格式

(2)优点:

        容易阅读

        容易与脚本语言交互

        以数据为核心,重数据轻格式

(3)YAML文件扩展名

        .yml(主流)

        .yaml

2、yaml语法规则

(1)大小写敏感

(2)属性层级关系使用多行描述,每行结尾使用冒号结束

(3)使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)

(4)属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)

(5)# 表示注释

(6)核心规则:数据前面要加空格与冒号隔开

enterprise:
 name: csdn
 age: 16 
 tel: 1333333333

3、yaml数组数据

数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

enterprise:
  name: csdn
  age: 16
  tel: 1444444444444
  subject:
    - Java
    - 前端
    - 大数据

4、yaml数据读取

lesson: SpringBoot

server:
  port: 82

enterprise:
  name: csdn
  age: 16
  tel: 888888888
  subject:
    - Java
    - 前端
    - 大数据

(1)使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

@RestController
@RequestMapping("/books")
public class BookController {

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

    @Value("${server.port}")
    private int port;

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

(2)封装全部数据到Environment对象

@RestController
@RequestMapping("/books")
public class BookController {
    @Autowired
    private Environment env;
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println(env.getProperty("lesson"));
        System.out.println(env.getProperty("enterprise.name"));
        System.out.println(env.getProperty("enterprise.subject[0]"));
        return "hello , spring boot!";
    }
}

(3)自定义对象封装指定数据

@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
    private String name;
    private Integer age;
    private String[] subject;
   // 需要getter setter toString方法
}

(4)自定义对象封装数据警告解决方案

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

三、多环境开发配置

1、多环境启动配置

(1)yaml文件多环境启动

 

(2)properties文件多环境启动

#主启动配置文件 application.properties
spring.profiles.active=pro
#环境分类配置文件 application-pro.properties
server.port=80
#环境分类配置文件 application-dev.properties
server.port=81
#环境分类配置文件application-test.properties
server.port=82

2、多环境启动命令格式

(1)带参数启动SpringBoot

java –jar springboot.jar --spring.profiles.active=test
java –jar springboot.jar --server.port=88
java –jar springboot.jar --server.port=88 --spring.profiles.active=test

(2)参数加载优先顺序

由低到高 

3、多环境开发控制 

Maven与SpringBoot多环境兼容

(1)Maven中设置多环境属性

<profiles>
    <profile>
        <id>dev_env</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>pro_env</id>
        <properties>
            <profile.active>pro</profile.active>
        </properties>
    </profile>
    <profile>
        <id>test_env</id>
        <properties>
            <profile.active>test</profile.active>
        </properties>
    </profile>
</profiles>

(2) SpringBoot中引用Maven属性

spring:
  profiles:
    active: ${profile.active}

(3)执行Maven打包指令

Maven指令执行完毕后,生成了对应的包,其中类参与编译,但是配置文件并没有编译,而是复制到包中

解决思路:对于源码中非java类的操作要求加载Maven对应的属性,解析${}占位符

(4) 对资源文件开启对默认占位符的解析

<build>
    <plugins>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <encoding>utf-8</encoding>
                <useDefaultDelimiters>true</useDefaultDelimiters>
            </configuration>
        </plugin>
    </plugins>
</build>

四、配置文件分类 

1、SpringBoot中4级配置文件

        1级: file config/application.yml  最高

        2级: file application.yml

        3级:classpathconfig/application.yml

        4级:classpathapplication.yml  最低

2、作用

        1级与2级留做系统打包后设置通用属性

        3级与4级用于系统开发阶段设置通用属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠哉iky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值