Spring Boot 的文件配置

SpringBoot的配置文件,有三种格式

1.properties
2.yaml
3.yml(yaml的简写)

这里主要介绍1和3格式的。

在项目中,同时存在properties和yml配置文件, properties的优先级更高

同时存在时,两个文件都生效

如果两个文件中,都包含同一个配置,以properties为主。

properties的配置

key value的形式,以=分割
key 的格式建议是小写,单词之间使用.分割

我们可以在 properties文件中设置配置,然后在其他类中进行读取

复制代码
demo.key = hello


@RestController//为什么必需使用这个注解
public class Controller {

    @Value("${demo.key}")//读配置文件
    private String  key;

    @RequestMapping("/readKey")
    public String readKey(){
        return "读到的配置"+key;
    }
}

切记@value配置中的文件名必需于配置中的相同,如果去掉$,就会把""中的值赋值给当前变量

就会变成这样

yml配置

想要将properties中的配置变成yml的遵守下面规则即可

把.换成冒号+换行key后面用冒号赋值

(Value前面)冒号后面一定要加空格

复制代码
demo.key: hello


@RestController
public class YmlController {


    @Value("${demo.key}")
    private String key;


    @RequestMapping("/readYml")
    public String readYml(){
        return "读取的配置Yml" + key;
    }

}

初始化直接读入配置文件的内容,在tomcat启动之前就进行执行

复制代码
 @PostConstruct
    public void init(){
        System.out.println("key"+key);
        System.out.println("key2"+key2);
    }

文件配置内容中的类型以自己实际为准,不会随便进行转化除了数字10这样类似的,因为无论是哪种类型其都可以,不像dsasda这串字符一样,其只能为字符串类型,不然会报错

yml特殊内容配置

null:使用~

空字符串: key后面直接空着就行了

推荐用单引号或者双引号括起来

这里的转义与以前学的是相反的意思

单引号会对特殊字符进行转义双引号不会进行转义

\n本身表示的是换行

使用单引号时,内容表示成了\n,而不是换行,所以认为是转义使用双引号时, \n表示成了换行,也就是\n的本来含义

下述代码可以从配置文件读取全部数据,pre里面必需与配置文件中的前缀名相同

复制代码
@Component
@ConfigurationProperties(prefix = "student")//pre中的意思就是写出yml文件的前缀是什么进行匹配
@Data
public class Student {

    private Integer id;

    private Integer age;

    private String name;

}

配置集合要加-如果不加空格,这部分内容会变成一个整体,统一赋值给对应属性

相关推荐
Lucky小小吴4 分钟前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
福尔摩斯张15 分钟前
插件式架构:解耦与扩展的艺术与实践(超详细)
linux·服务器·网络·网络协议·tcp/ip
练习时长一年18 分钟前
LeetCode热题100(最小栈)
java·算法·leetcode
阿杰AJie22 分钟前
通用 Token 管理工具(详细注释 + 完整使用示例 + 设计说明)
java·后端·程序员
TH_123 分钟前
28、powershell快速删除 node_modules
java
txzz888824 分钟前
CentOS-Stream-10 搭建YUM源Web服务器
linux·运维·centos·yum源·linux系统更新·centos系统更新·自建web yum源
一 乐25 分钟前
智慧医药|基于springboot + vue智慧医药系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
Molesidy35 分钟前
【Linux】基于Imx6ull Pro开发板和platform_device+platform_driver框架的LED驱动设计以及上机测试
linux·驱动开发
雨中飘荡的记忆44 分钟前
享元模式深度解析:看Java如何优雅节省内存
java·设计模式
悟空码字1 小时前
SpringBoot接口防抖大作战,拒绝“手抖”重复提交!
java·spring boot·后端