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

目录
  • 一.配置文件的作用
  • 二.配置文件的格式
  • 三.properties配置文件的说明
    • 1.properties基本语法
    • 2.读取配置文件
    • 3.properties的缺点
  • 四.yml配置文件的说明
    • 1.yml基本语法
    • 2.读取配置文件
    • 3.配置对象
    • 4.配置集合
  • 五.properties和yml的区别

一.配置文件的作用

配置文件是非常重要的,整个项目中所有的重要数据都是在配置文件中进行配置的例如:

  • 数据库的连接信息(用户名和密码的设置);
  • 项目启动的端口;
  • 第三方系统调用的秘钥信息;
  • 可以发现和定位问题的普通日志和异常日志等(日志的级别和持久化);

如果没有配置文件的话,这些信息就无法进行配置了,数据库无法连接,日志无法查看等这些问题都是对于Spring Boot项目非常关键的,因此配置文件是特别重要的!

二.配置文件的格式

配置文件的分类一般是:

  • 系统的配置文件(系统定义好的),如连接字符串,日志的相关设置;
  • 用户自己定义的;

而Spring Boot的配置文件主要有两种格式:

  • .properties
  • .yml

就是这样的两种格式,而且这里也一定要这么写,不然也是会报错的(约定大于配置),在这两个里面都是可以进行相关配置文件的设置的,两种格式只是不同时间的产物罢了,另外两种格式的写法也是不同的,这个下面会有相关的介绍,而且这两种格式也是可以并存的,如果两个都配置了,这里的配置会采用properties里面的配置,而忽略yml里面的配置,因此不建议同时使用两种格式再同一个项目中!

三.properties配置文件的说明

properties配置文件是更早期的配置文件格式,也是Spring Boot项目默认的配置文件,下面就具体介绍一下properties配置文件:

1.properties基本语法

在properties里面是以键值对为主的(key=value),类似于

这样的格式(中间不要写空格,也不要写多余的空格)

如果是自定义的配置文件的话,也是key=value的形式,而这是需要自己写的,如果要读取这个文件也只能使用自己定义的key值来得到value值!

2.读取配置文件

同样也是使用注解就可以解决这个问题,这里使用@Value注解以及${}的格式就可以进行读取了:

@Controller
public class Test {
    @Value("${server.port}") //读取配置项
    private  String port;
    @ResponseBody  //返回一个非静态页面的数据
    @RequestMapping("/func")  //设置路由地址
    public String  func(){
        return "port: " + port;
    }
}

然后通过页面搜索http://localhost:8080/func就看有观察到读取到的端口号了:

而使用@Value是只能读取一个配置文件的话,如果想读取多个的话,需要多写几个@Value标签就可以了

3.properties的缺点

在properties里面是采用key=value的形式,而如果是同一key下的value,就需要把此key值重复来写,这就显得非常冗余了

而想要解决这个问题就需要使用yml配置文件了

四.yml配置文件的说明

yml是另一种格式的配置文件,yml 是⼀个可读性⾼,易于理解,⽤来表达数据序列化的格式,yml的语法和高级语言非常类似,而yml最大的优势是可以跨语言,像python,golang都可以使用yml作为配置⽂件。下面具体介绍一下yml配置文件:

1.yml基本语法

在yml里面的基本语法是:key: value,注意key和value之间需要英文冒号加空格,其中的空格也是不可省略的,类似

这样的语法再写上面的连接数据库配置的话,就方便很多了:

补充:yml中关于单、双引号的问题:yml中如果使用了双引号就会按照(原)语义执行,如果不加,或者加了单引号,那么默认就会将字符串中的特殊字符进行转义,比如\n -> \n(转义)处理。

2.读取配置文件

yml配置文件的读取方式也是和properties一样的,都是使用@Value注解加${}的格式,这里就不演示了,下面来看一下yml不一样的地方!

3.配置对象

在yml里面还是可以配置对象的:

另外也可以使用行内写法:

而想要读取到这个对象的话就不能再使用@Value注解了,这里需要借助@ConfigurationProperties来读取:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@ConfigurationProperties(prefix = "student") //读取配置文件的对象
@Component
public class Student {
    private int id;
    private String name;
    private int age;
}

然后读取对象,就可以直接进行注入了:

@Controller
public class Test {
    @Autowired
    private Student student;
    @ResponseBody
    @RequestMapping("/getstudent")
    public String getStudent(){
        return "student: " + student;
    }
}

然后通过浏览器搜索http://localhost:8080/getstudent就可以得到对象内容了:

4.配置集合

在yml里面也是可以配置集合的:

同样行内写法也是可以的:

而要获取到集合的话,和获取对象是差不多的,也是通过@ConfigurationProperties来获取:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Data
@ConfigurationProperties(prefix = "dbtypes")
@Component
public class ListConfig {
    private List<String> name;
}

读取集合:

@Controller
public class Test {
    @Autowired
    private ListConfig listConfig;
    @ResponseBody
    @RequestMapping("/getlist")
    public String getList(){
        return "name:" + listConfig.getName();
    }
}

然后通过浏览器搜索http://localhost:8080/getlist就可以得到对象内容了:

五.properties和yml的区别

  • properties是以key=value的形式配置的键值对类型配置文件,而yml是以key: value的形式配置的键值对类型配置文件;
  • properties是早期且系统默认的配置文件格式,但配置存在一定的冗余数据,而yml可以更好的解决数据冗余问题;
  • yml通用性更好,支持多语言;
  • yml支持更多的数据类型;

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

(0)

相关推荐

  • 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详细讲解yaml配置文件的用法

    目录 1.基本语法 2.数据类型 3.代码测试 4.开启补全提示 1.基本语法 key: value:kv之间有空格 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 字符串无需加引号,如果要加,单引号’'.双引号""表示字符串内容会被 转义.不转义 2.数据类型 1.字面量:单个的.不可再分的值.date.boolean.string.number.null k: v 2.对象:键值对的集合.map.

  • SpringBoot配置文件中密码属性加密的实现

    目录 背景 集成jasypt-spring-boot到项目中 配置文件配置加密与读取 工作原理简析 使用自定义的加密算法 结语 本文主要介绍了SpringBoot配置文件中的明文密码如何加密保存,读取以及对于自定义的加密算法加密的参数如何保存和读取. 背景 为了安全的需要,一些重要的信息比如数据库密码不能明文保存在配置文件中,需要进行加密之后再保存.SpringBoot可以使用jasypt-spring-boot这个组件来为配置属性提供加密的支持. 集成jasypt-spring-boot到项目

  • 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

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

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

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

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

  • 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超详细讲解yaml配置文件

    目录 1.文件类型 A.properties配置文件类型 B.yaml 基本语法 数据类型 2.配置提示 1.文件类型 A.properties配置文件类型 同以前properties用法一样 B.yaml 简介: YAML 是 "YAML Ain't Markup Language"(YAML 不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言). 非常适合用来做以

  • 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详解整合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详解五种实现跨域的方式

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

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

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

  • 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 命令当前运行目录;

随机推荐