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

相关推荐
渡我白衣4 分钟前
Acceptor模块的设计与实现
java·linux·服务器·开发语言·网络·c++·人工智能
luteres2 小时前
Mybatis+SSM整合笔记
java·开发语言·mybatis
覆东流8 小时前
7.Java数组
java·开发语言·后端
m0_719084118 小时前
限流和获取请求ip的方法
java
threerocks9 小时前
AI 原生软件开发生命周期手册 - 如何借助 AI,逐阶段改造软件开发生命周期
前端·javascript·后端
lzhdim9 小时前
提高 SQL 语句执行速度的方法
java·开发语言·数据库·sql·oracle
JavaPub-rodert9 小时前
王仕宇在 Go Context 如何解决协程泄漏与超时控制
开发语言·后端·golang·iphone·javapub·王仕宇
深漂的华哥10 小时前
Ruoyi-Plus前后端分离场景下,数据加密传输
java·spring boot·后端·开源·maven·ruoyi
落魄大学生之流水线上谋生计11 小时前
Java锁全面指南:从基础概念到企业级应用
java·开发语言
why技术11 小时前
eli5,我觉得这个全网在吹的技能,使用体验真的很一般啊。
前端·人工智能·后端