Spring Boot详解配置文件的用途与用法

目录
  • 1. SpringBoot 配置文件
    • 1.1 配置文件的作用
    • 1.2 配置文件的格式
    • 1.3 properties 配置文件说明
      • 1.3.1 properties 基本语法
      • 1.3.2 读取配置文件
    • 1.4 yml 配置文件说明
      • 1.4.1 yml 基本语法
      • 1.4.2 yml 使用进阶
      • 1.4.3 配置对象
      • 1.4.4 配置集合
      • 1.4.5 yml的另一种写法(行内写法)
    • 1.5 properties 和 yml 比较
  • 2. 读取 SpringBoot 配置文件的方法
    • 2.1 使用 @Value 读取配置文件
    • 2.2 使用@ConfigurationProperties
    • 2.3 @PropertySource读取指定配置文件

1. SpringBoot 配置文件

1.1 配置文件的作用

配置文件中配置了项目中重要的数据, 例如:

  • 数据库的连接信息 (用户名密码)
  • 项目的启动端口
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

Spring Boot项目没有配置信息, 就不能连接和操作数据库, 甚至不能保存可以用于排查问题的关键日志. 所以配置文件非常重要.

1.2 配置文件的格式

在Spring Boot 中配置文件主要分为两种:

  • .properties (主要是key=value格式)
  • .yml (主要是key: value格式)

注意:

  • 当项目中既有 .properties.yml , 且两个配置文件中有相同的配置项, Spring Boot 会优先考虑 .properties , 因为 .properties 的优先级更高一些.
  • 一个项目中允许存在两种不同的配置文件, .properties .yml, 但是在项目中建议只使用一种配置文件的格式.

1.3 properties 配置文件说明

1.3.1 properties 基本语法

properties 是以 key=value 这种格式配置的.

server.port=9090
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/2022-6-1
spring.datasource.username=root
spring.datasource.password=1234

配置文件的注释信息使用 “#”

1.3.2 读取配置文件

读取配置文件的内容, 可以使用 @Value 注解来实现

@Value 注解使用 "${}" 的格式读取.

@Component
public class Read implements InitializingBean {
    @Value("${server.port}")
    private String port;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(port);
        System.out.println();
    }
}

1.4 yml 配置文件说明

yml 是 YMAL 是缩写, 它的全称是 Yet Another Markup Language, 译为 另一种标记语言.

1.4.1 yml 基本语法

yml 是树形结构的配置文件, 它的基础语法是 key: value, 这里的:后面跟着一个空格.

server:
  port: 9090
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/2022-6-1
    username: root
    password: 1234

1.4.2 yml 使用进阶

# ~代表null
null.value: ~

查看一段代码

string:
  str1: Hello \n World
  str2: 'Hello \n World'
  str3: "Hello \n World"

读取yml中的这段代码

@Component
public class Read1 implements InitializingBean {
    @Value("${string.str1}")
    private String str1;
    @Value("${string.str2}")
    private String str2;
    @Value("${string.str3}")
    private String str3;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println("str1: "+str1);
        System.out.println("str2: "+str2);
        System.out.println("str3: "+str3);
        System.out.println();
    }
}

运行结果:

字符串加上双引号, 会执行\n 换行.

1.4.3 配置对象

yml 中配置对象

student:
  id: 1
  name: zhangsan
  age: 18

读取配置的对象, 就需要用到另一个注解: @ConfigurationProperties

@Component
@ConfigurationProperties("student")
public class User {
    private int id;
    private String name;
    private int age;
	// 一堆getter setter
}

读取

@Component
public class Read2 implements InitializingBean {
    @Autowired
    private Student student;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(student);
        System.out.println();
    }
}

1.4.4 配置集合

yml 中 配置集合

mylist:
  colors:
    - RED
    - GREEN
    - BLACK

读取配置集合

@Component
@ConfigurationProperties("mylist")
public class MyList {
    private List<String> colors;
    // 一堆getter 和 setter
}

打印代码

@Component
public class Read3 implements InitializingBean {
    @Autowired
    private MyList myList;
    @Override
    public void afterPropertiesSet() throws Exception {
        for (String val : myList.getColors()){
            System.out.println(val);
        }
    }
}

1.4.5 yml的另一种写法(行内写法)

配置对象

student: {id: 1,name: zhangsan,age: 18}

配置集合

mylist: {colors: [RED,GREEN,BLACK]}

1.5 properties 和 yml 比较

properties 的语法更复杂, yml 语法更简洁

yml通用性更好, 支持更多的语言, 如 Java, Go, Python等

yml支持更多的数据类型

yml格式的配置文件写的时候容易出错(在:之后有一个空格), 而properties写法传统比较复制,但不太容易出错

2. 读取 SpringBoot 配置文件的方法

2.1 使用 @Value 读取配置文件

只能读取一个

@Component
public class Read implements InitializingBean {
    @Value("${server.port}")
    private String port;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(port);
        System.out.println();
    }
}

2.2 使用@ConfigurationProperties

直接在类上写

@Component
@ConfigurationProperties("mylist")
public class MyList {
    private List<String> colors;
    public List<String> getColors() {
        return colors;
    }
    public void setColors(List<String> colors) {
        this.colors = colors;
    }
}

2.3 @PropertySource读取指定配置文件

jdbc.username=root2
jdbc.password=root1

@Component
@PropertySource(value = {"classpath:application.properties"})
public class JDBC implements InitializingBean {
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println(username + " " + password);
    }
}

到此这篇关于Spring Boot详解配置文件的用途与用法的文章就介绍到这了,更多相关Spring Boot配置文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Spring Boot 配置文件类型properties 格式与yml 格式

    目录 一 配置文件类型 二 配置文件 2.1 核心配置文件 2.1.1 bootstrap.yml(bootstrap.properties) 2.1.2 application.yml(application.properties) 2.2 自定义配置文件 三 配置文件读取 3.1 读取核心配置文件信息 3.1.1 Environment方式 3.1.2 @Value方式 3.1.3 @ConfigurationProperties方式 3.2 读取自定义配置文件信息 3.2.1 @Prope

  • SpringBoot使用spring.config.import多种方式导入配置文件

    目录 简介 导入classpath下的配置文件 导入系统目录下的配置文件 导入Nacos配置中心的配置文件 总结 简介 SpringBoot从2.4.x版本开始支持了导入文件的方式来加载配置参数,与spring.config.additional-location不同的是不用提前设置而且支持导入的文件类型相对来说要丰富很多. 我们只需要在application.properties/application.yml配置文件中通过spring.config.import属性配置需要导入的文件列表即可

  • SpringBoot加密配置文件的SQL账号密码方式

    目录 加密配置文件的SQL账号密码 1.在Maven项目中引入依赖 2.同时需要在application.yml配置文件中先配置密码 3.可以在测试用例中 4.最后在配置文件中放入加密后的字符串就行 对配置文件进行加密 第一步:pom文件加入依赖,如图 第二步:生成密钥 第三步:springboot配置文件中添加配置,如图 第四步:通过命令解密密码 加密配置文件的SQL账号密码 一般项目的配置文件里的信息都是明文的,导致有时候比较敏感的信息也直接暴露得超级明显,比如SQL的链接 账号 密码等.

  • SpringBoot实现多环境配置文件切换教程详解

    目录 背景 解决方案 一.新建配置文件 二. 服务调用测试 2.1 新建调用类 2.2 使用样例项目 三.扩展练习 3.1 使用注解标记配置,首先定义一个接口 3.2 分别定义俩个实现类来实现它 3.3 修改application.yml文件激活配置 3.4 新增查询方法 3.5 使用一个或多个配置文件及激活标记文件 3.6 切换日志文件 背景 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据

  • springboot读取nacos配置文件的实现

    目录 首先,Nacos 的配置文件如下 第一种方式来解析 第二种方式来解析 SpringBoot 注册服务到 Nacos 上,由 Nacos 来做服务的管理.在 Nacos的配置列表中,管理着服务的配置文件.SpringBoot 有两种方式来读取配置文件的内容,一种是写配置文件类 @ConfigurationProperties ,一种是使用 @Value 注解. 首先,Nacos 的配置文件如下 ### 配置文件使用 yml 格式, 也可以使用 properties 格式,最终 yml 格式会

  • SpringBoot动态修改yml配置文件的方法详解

    目录 前言 具体实现 实现代码 测试 源码 总结 前言 记录下SpringBoot修改yml配置文件后无需重启服务的方式(打包后生效),效果如下: 具体实现 实现代码 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </d

  • SpringBoot配置文件properties和yml的实现

    目录 配置文件的作用 SprintBoot的配置文件(两种): properties yml 读取配置文件的方法: @Value注解读取单个配置项 @ConfigurationProperties读取实体类 properties VS yml 总结 配置文件的作用 通常情况下,一个项目中的一些重要信息都会放在配置文件中,比如:数据库的连接信息.项目的启动端口.一些第三方的秘钥.记录信息的普通日志和异常日志等. SprintBoot的配置文件(两种): Spring Boot的配置文件主要有两种格

  • Spring Boot 如何正确读取配置文件属性

    目录 前言 @Value 示例代码 @ConfigurationProperties 示例代码 @EnableConfigurationProperties @ConfigurationPropertiesScan @PropertySource 示例代码 总结 前言 项目中经常会经常读取配置文件中的属性的值,Spring Boot提供了很多注解读取配置文件属性,那么如何正确使用呢? @Value @Value用来读取application.yml配置文件中属性的值. 示例代码 applicat

  • SpringBoot详细讲解多个配置文件的配置流程

    目录 配置文件加载顺序 验证 前期准备 验证配置文件加载顺序 验证属性互补 总结 一般情况下,springboot默认会在resource目录下生成一个配置文件(application.properties或application.yaml),但其实springboot允许配置多个配置文件(application.properties或application.yaml),但是这并不意味着这些配置文件一定会替换默认生成的配置文件,它们是互补的存在.如果在某些场景下需要把配置文件单独拿出来并且启动的

  • Spring Boot详解配置文件的用途与用法

    目录 1. SpringBoot 配置文件 1.1 配置文件的作用 1.2 配置文件的格式 1.3 properties 配置文件说明 1.3.1 properties 基本语法 1.3.2 读取配置文件 1.4 yml 配置文件说明 1.4.1 yml 基本语法 1.4.2 yml 使用进阶 1.4.3 配置对象 1.4.4 配置集合 1.4.5 yml的另一种写法(行内写法) 1.5 properties 和 yml 比较 2. 读取 SpringBoot 配置文件的方法 2.1 使用 @V

  • Spring Boot详解配置文件有哪些作用与细则

    目录 一.配置文件的作用 二.配置文件的格式 三.properties配置文件的说明 1.properties基本语法 2.读取配置文件 3.properties的缺点 四.yml配置文件的说明 1.yml基本语法 2.读取配置文件 3.配置对象 4.配置集合 五.properties和yml的区别 一.配置文件的作用 配置文件是非常重要的,整个项目中所有的重要数据都是在配置文件中进行配置的例如: 数据库的连接信息(用户名和密码的设置): 项目启动的端口: 第三方系统调用的秘钥信息: 可以发现和

  • Spring Boot详解创建和运行基础流程

    目录 1. 初始 Spring Boot 1.1 什么是Spring Boot 1.2 Spring Boot 的优点 2. 创建 Spring Boot 项目(Idea) 2.1 首先安装 Spring Assistant 插件 2.2 重启Idea-New Project ① 点击 Spring Assistant 直接Next就可以了 ② Next 之后的页面介绍 ③ 引入依赖, 选择Spring Boot的版本 ④ 选择项目名称和保存路径 ⑤ Spring Boot 项目创建完成 3.

  • Spring Boot详解五种实现跨域的方式

    目录 一.为什么会出现跨域问题 二.什么是跨域 三.非同源限制 四.java后端实现CORS跨域请求的方式 1. 返回新的CorsFilter(全局跨域) 2. 重写WebMvcConfigurer(全局跨域) 3. 使用注解 (局部跨域) 4. 手动设置响应头(局部跨域) 5. 使用自定义filter实现跨域 一.为什么会出现跨域问题 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能

  • Spring boot详解缓存redis实现定时过期方法

    目录 前言 添加依赖 添加配置 常规缓存 开启缓存 设置缓存空间 设置缓存 增加设置缓存过期时间 总结 后记 前言 使用redis进行缓存数据,是目前比较常用的缓存解决方案.常用的缓存形式有一下几种: 1.纯原生代码进行redis的增删改查,手工编写缓存工具类,由开发者在代码中进行调用. 优势:代码由实际使用的开发者进行维护,便于定制化的改造. 2.使用市场上已有的缓存工具,也就是大家常说的大佬的轮子 优势:方便快捷,提升开发效率 添加依赖 修改pom文件引入如下配置 <?xml version

  • Spring Boot详解整合JWT教程

    目录 1.概述 2.优势所在 3.结构组成 3.1.标头(Header) 3.2.有效负载(Payload) 3.3.签名(Signature) 4.Spring boot整合JWT 导入依赖 1.概述 JWT 简称 JSON Web Token,也就是通过JSON形式作为Web应用中的令牌,用于各方之间安全地将信息作为JSON对象传输,在数据传输的过程中还可以完成数据加密.签名等相关处理. 2.优势所在 在JavaWeb阶段,经常使用session来存储,以方便用来判断用户是否操作等等.但这又

  • Spring Boot详解各类请求和响应的处理方法

    目录 1. HttpServletRequest与HttpServletResponse 2. GET类型的请求 2.1 /students?current=1&limit=20 2.2 /student/123 3. POST类型的请求 4. 响应HTML格式的数据 4.1 使用ModelAndView 4.2 使用Model 5. 响应JSON格式的数据 5.1 单组数据 5.2 多组数据 1. HttpServletRequest与HttpServletResponse 浏览器输入:htt

  • .NET程序员如何入门Spring Boot详解

    前言 本篇文章将教你作为一个.NET程序员如何快入门Spring Boot.你不需要用Eclipse,也不需要用IDEA.已经习惯了VS,其他的IDE-- 但不得不说VS Code很厉害,一用就喜欢.微软给VS Code提供了编写Java的插件,你可以在VS Code上愉快地写Java. 一.环境搭建 (1) 安装Java.配置环境变量.(教程很多,这里不多说) (2) 安装Maven和配置.参考https://www.cnblogs.com/eagle6688/p/7838224.html (

  • 详解spring boot starter redis配置文件

    spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service. RedisConnectionFactory是一个接口,有如下4个具体的实现类,我们通常使用的是JedisConnectionFactory. 在spring boot的配置文件中redis的基本配置如下: # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.

  • Spring Boot常见外部配置文件方式详析

    日常开发和发布我们经常将 SpringBoot 的配置文件application.properties (或 application.yaml)直接放在项目目录下然后打包进 jar 包. 但是在很多时候, 我们可能因为 CI 需要或者安全管理需要集中管理配置文件, 这就涉及到外部配置文件的问题. 根据 SpringBoot 官方文档, 外部配置文件一般可以放到这4个地方: /config /config 也就是: java 命令当前运行目录下的 config 目录; java 命令当前运行目录;

随机推荐