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

相关推荐
阿旭超级学得完几秒前
C++11包装器(function和bind)
java·开发语言·c++·算法·哈希算法·散列表
用户83562907805115 分钟前
使用 Python 在 PowerPoint 中生成并自定义饼图与环形图
后端·python
念何架构之路23 分钟前
Go语言常见并发模式
开发语言·后端·golang
Cosolar40 分钟前
大模型应用开发面试 • 第4期|A2A、复杂挑战与具身智能
人工智能·后端·面试
掉鱼的猫1 小时前
Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
java·openai·agent
Refrain_zc1 小时前
Android 应用内 APK 安装全方案:从静默安装到普通安装的详解
java
迷渡1 小时前
聊一聊 Bun 用 Rust 重写这件事
开发语言·后端·rust
王中阳Go1 小时前
秒杀、分库分表、全链路追踪:一个电商微服务的架构全拆解
后端·go
正儿八经的少年1 小时前
Spring Boot 两种激活配置方式的作用与区别
java·spring boot·后端