超级实习生计划笔记打卡——SpringBoot 配置

SpringBoot(2)—— 配置
SpringBoot 提供了 2 种配置文件类型:properties 和 yml/yaml。

默认配置文件的名称:application

可以有多个配置文件,会按一定优先级读取:properties > yml > yaml

1. YAML 简介
YAML (YAML Ain’t Markup Language)是一种直观的能被电脑识别的数据序列化格式,并容易被人类阅读,容易和脚本语言交互,可以被支持 YAML 库的不同编程语言导入。

YML 文件是以数据为核心的,比传统的 xml 方式更为简洁。

YAML 文件的扩展名为 yml 或 yaml。

2. 基本语法
大小写敏感
数值前面必须有空格,作为分隔符
使用缩进表示层级关系
缩进时不能用 Tab 键,只能用空格键
缩进的空格数目不重要,只有相通层级的元素左侧对齐即可
# 表示注释,从这个字符一直到行尾,都会被解析器忽略。
3. 数据格式
3.1 对象(map)
对象,就是键值对的集合。例如:
 

person:
	name: xuxumiao
	
# 行内写法
person: {name: xxm}

3.2 数组

数组是一组按次序排列的值。

数组中,使用 "- "表示数组每个元素。

例如:

address:
	- changsha
	- shanghai
	
# 行内写法
address: [changsha,shanghai]

3.3 纯量

纯良,相当于常量,是单个的、不可再分的值。例如:

# 单引号,表示忽略转义字符
msg1: 'hello \n world'

# 双引号,表示会识别转义字符,这里的 /n 会被识别成换行符
msg2: "hello \n world"

3.4 参数引用

相当于变量。格式如下:

name: xxm

person:
	name: ${name} #引用 name

4. 读取配置内容

4.1 @Value

例如:

yml 配置中:

name: xxm

Controller 类:

@RestController
public class HelloController {

    /**
     * 读取配置内容的方法 1:
      */
    @Value("${name}")
    private String name;

    /**
     * 对应的方法
     */
    @RequestMapping("/hello2")
    public String hello() {
        return name;
    }
}

配置完成后,启动项目,访问 /hello2 :

 

4.2 Environment

yml 配置延续上一部分。

Controller 类:

@RestController
public class HelloController {
    /**
     * 读取配置内容的方法 2:
     */
    @Autowired
    private Environment environment;

    /**
     * 对应的方法
     */
    @RequestMapping("/hello3")
    public String hello3() {
        return environment.getProperty("name3");
    }
}

4.3 @ConfigurationProperties

yml 配置:

user:
  name: xxm
  gender: male
  age: 28

再创建一个实体类 User,在类上添加注解 @Component 和 @ConfigurationProperties

package com.xuxumiao.springbotinit.domain;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author: xxm
 * @Date: 2022/1/21 0:50
 */

@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String name;
    private String gender;
    private int age;
}

Controller 类:

    /**
     * 读取配置内容的方法 3:
     */
    @Autowired
    private User user;

    /**
     * 对应的方法
     */
    @RequestMapping("/hello4")
    public String hello4() {
        return user.getName() + ":" + user.getGender() + ":" + user.getAge();
    }

运行项目,并且访问 /hello4 :

 

5. 配置 SpringBoot 注解处理器

在 pom.xml 中引入注解处理器:

6. profile
profile 配置文件是专门用于进行动态配置切换的。

spring 快速构建,创建一个新模块 springboot-profiles,以用做练习。

6.1 分支与激活分支——多文件
创建几个 yml 文件 ,分别命名为:

application-dev.yml、application-prod.yml、application-test .yml、

在这 3 个 yml 文件中分别设置不同的端口号,例如:
 

server:
  port: 8091

在 application.yml 中,可以通过配置来选择激活哪一个分支。

例如:

spring:
  profiles:
    active: dev

6.2 分支与激活分支——单文件

spring:
  config:
    activate:
      on-profile: dev

6.3 虚拟机配置

编辑配置-虚拟机选项中这样填写:-Dspring.profiles.active=dev

如图:

 

6.4 命令行参数配置

编辑配置 - 程序实参中这样填写:--spring.profiles.active=pro

 

6.5 命令行启动

在命令行启动 jar包时,直接使用参数。

第一步:先用 maven 的 package 指令打包项目。

第二步:在输出的 jar包目录下,运行命令行,输入指令:

java -jar .\springboot

6.6 项目内部配置
Springboot 项目程序启动时,会从以下位置加载配置文件:

file:./config/ :当前项目下的 /config 目录下
file:./ :当前项目的根目录
classpath:/config/ : classpath 的 /config 目录
classpath:/ : classpath 的根目录


加载顺序为从上至下,高优先级配置的属性会生效。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值