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;

}

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

相关推荐
北凉军3 分钟前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库
EndingCoder6 分钟前
索引类型和 keyof 操作符
linux·运维·前端·javascript·ubuntu·typescript
程序员张313 分钟前
Mybatis条件判断某属性是否等于指定字符串
java·spring boot·mybatis
wuk99813 分钟前
基于C#与三菱PLC通过TCPIP实现MC协议通信示例
java·网络·c#
石小千16 分钟前
Linux清除缓存
linux·运维
weixin_5160230717 分钟前
VESTA在Linux下的安装
linux·运维·服务器
沛沛老爹20 分钟前
Web转AI架构篇 Agent Skills vs MCP:工具箱与标准接口的本质区别
java·开发语言·前端·人工智能·架构·企业开发
码农小卡拉26 分钟前
Maven与Gradle选型指南:如何匹配项目的依赖管理需求
java·gradle·maven
黎雁·泠崖29 分钟前
吃透Java操作符进阶:算术+移位操作符 全解析(Java&C区别+完整案例+避坑指南)
java·c语言·python
Nautiluss42 分钟前
一起调试XVF3800麦克风阵列(十四)
linux·人工智能·音频·语音识别·dsp开发