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一样

相关推荐
月落星还在10 分钟前
Spring MVC 与 Spring Boot:从“手动挡”到“自动驾驶”的进化论,兼谈前后端分离的哲学
spring boot·spring·云原生·mvc
蓝田~23 分钟前
大模型本地部署与远程调用 — 从 API 到 Agent
java·人工智能·claude·claude code
码农进化录29 分钟前
Java 程序员的 AI 进化论 | Spring Boot 接入 OpenAI 的六个坑,全帮你踩了
java·spring boot·openai
她说彩礼65万32 分钟前
Asp.net core 模型绑定
后端·asp.net
用户342323237631737 分钟前
BLE 传感器节点实战
后端
疯狂成瘾者38 分钟前
Java 常见集合方法
java·windows·python
从此以后自律39 分钟前
ConcurrentHashMap 超详细详解
java
fliter44 分钟前
Go 1.26 新增 `bytes.Buffer.Peek`:只看数据,不移动读取位置
后端
羑悻1 小时前
我受够了 Coding Agent 的“假聪明,真串行”,于是做了 Meta-Orchestrator!
后端
神奇小汤圆1 小时前
字节二面挂了!被问“订单超时自动取消”
后端