SpringBoot配置文件

概述

配置文件的作用

为了解决硬编码的问题,把所有可能做出改变的内容集中在一起,例如:字体大小

配置文件的分类

application.properties

概述:

语法:以key=value的形式

java 复制代码
spring.application.name=springmvc-demo
#端口号
#server.port=9091
my.key =kon

注:1.当properties和yml配置文件内容一致同时生效,但properties的优先级更高,一般使用一个配置文件,会取并集

2.如果不修改字符编码可能会在重新打开配置文件时,注释就会有乱码产生,所以我们需要去修改

读取properties配置文件

java 复制代码
@RestController
@RequestMapping("/prop")
public class ReadPropertiesController {
//    这个注解把配置文件的my.key赋值给了myKey
    @Value("${my.key}")
    private String myKey;
    @Value("${server.port}")
    private Integer serverPort;
    @RequestMapping("/read")
    public String read(){
        return "myKey:"+myKey;
    }
    //这个注释表示ReadpropertiesController这个项目启动之前就执行这个方法
    @PostConstruct
    public void read2(){
        System.out.println("serverPort:"+serverPort);
    }
}

application.yml

概述:

语法:以key: value的形式,冒号与value的空格是不可省略的

java 复制代码
server:
  port: 8080
  netty:
    validate-headers: true

yml配置不同数据类型以及null

java 复制代码
#    表示为空字符
kon:
  value: ""
#  代表为null
lin: 
  zhou: ~
#   表示浮点数
fen:
  chen: 3.15936

读取yml配置文件

实际上和properties一样,只是需要复制配置文件时,需要选择右键Copy

统一配置和读取

当我们读取配置文件的内容时,还是需要去一个一个进行读取,感觉比较麻烦,那么我们想要整体进行读取,就需要去配置对象,集合以及Map

配置和读取对象
java 复制代码
@Data
@Component
//注解表示的是创建这个对象,并且会去寻找这个路径下面的内容,给类里的属性进行赋值
@ConfigurationProperties(prefix = "spring.datasource")
public class DateSourceProperties {
    private String url;
    private String username;
    private String password;
}
java 复制代码
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false
    username: root
    password: root
java 复制代码
  @Autowired
    private DateSourceProperties dateSourceProperties;
配置和读取集合和Map
java 复制代码
@Data
@Component
@ConfigurationProperties(prefix = "zhao")
public class DataTypes {
    private List<String> qan;
    private Map<String,String> map;
}
java 复制代码
zhao:
  qan:
    -name
    -gender
    -age
  map:
    k1: 56
    k2: 98
    k3: 66

yml文件加单双引号的区别

java 复制代码
chu:
  value1: hello \n Spring Boot
  value2: 'hello \n Spring Boot'
  value3: "hello \n Spring Boot"
java 复制代码
chuValue1:hello \n Spring Boot
chuValue2:hello \n Spring Boot
chuValue3:hello 
 Spring Boot

结论为:单引号不会转义,双引号会转义

application.yaml

和yml一样

相关推荐
晓杰在写后端17 分钟前
从0到1实现Balatro游戏后端(9):Blind奖励结算与金币系统实现
后端·游戏开发
Patrick_Wilson20 分钟前
幂等到底是什么?从前端视角讲透 SQL、HTTP 与 POST 接口的幂等设计
前端·后端·架构
凌览21 分钟前
一人公司别再上 Jenkins,真不值
前端·后端
菜鸟谢25 分钟前
Rust 元组与数组内存管理笔记
后端
oil欧哟26 分钟前
Codex 最佳实践(超级长文):先搞懂 AI,再用好 AI
前端·人工智能·后端
AskHarries26 分钟前
把一个外部系统接成 MCP 工具
后端·程序员
释然小师弟42 分钟前
Android开发十年:反思与回顾
android·后端·嵌入式
用户31693538118344 分钟前
如何从零编写一个 Spring Boot Starter
spring boot
雪隐1 小时前
个人电脑玩AI-04让5060 Ti给你打工——本地FLUX.2 Klein 的 AI 图片生成
人工智能·后端
掘金者阿豪1 小时前
多台服务器日志怎么统一清理?Ansible、Cron与cpolar自动化方案
后端