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

相关推荐
我叫黑大帅2 小时前
TypeScript 6.0 弃用选项错误 TS5101 解决方法
javascript·后端·面试
fTiN CAPA2 小时前
Tomcat 都有哪些核心组件
java·tomcat·firefox
2601_949814492 小时前
Spring Boot中使用Server-Sent Events (SSE) 实现实时数据推送教程
java·spring boot·后端
splage2 小时前
HeidiSQL导入与导出数据
java
热爱Java,热爱生活2 小时前
浅谈Spring三级缓存
java·spring·缓存
ConardLi2 小时前
把 Claude Design 做成 Skill,你的网站也能拥有顶级视觉体验
前端·人工智能·后端
@ chen2 小时前
IDEA初始化配置
java·ide·intellij-idea
wellc3 小时前
SpringBoot集成Flowable
java·spring boot·后端
IT_陈寒3 小时前
React状态更新那点事儿,我掉坑里爬了半天
前端·人工智能·后端