Spring Boot配置文件

这篇具有很好参考价值的文章主要介绍了Spring Boot配置文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot配置文件

日升时奋斗,日落时自省 

目录

1、配置文件作用

2、配置文件格式

2.1、使用注意

3、properties配置文件

3.1、注释中文问题

3.2、properties语法格式

3.3、读取配置文件

3.3.1、Value读取

3.3.2、PropertySource读取

3.3.3、原生方式读取配置文件

3.4、properties缺点分析

4、yml配置文件

4.1、优点分析

4.2、yml语法格式

4.2.1、设置不同数据类型

4.2.2、yml配置读取

 4.2.3、配置对象

4.2.4、配置集合

5、properties和yml区别

6、设置不同创建环境的配置文件


1、配置文件作用

配置文件是一种存储应用程序配置信息的文件,通常采用纯文本格式

<1>存储应用程序的配置参数:在软件开发过程中,很多参数需要在运行时进行调整,例如数据库连接、日志级别等。通过配置文件,可以将这些参数组织起来并进行统一管理

<2>方便程序的部署:在程序部署时,需要根据不同的环境进行不同的配置,例如开发环境、测试环境和生产环境等。通过配置文件,可以轻松地进行环境切换,从而方便程序的部署和管理

2、配置文件格式

Spring Boot配置文件主要分为两种格式:

.properties (比较老的格式)

.yml(也能写作.yaml 都算是新版格式)

Spring Boot配置文件

两者都是可以出现在一个目录下使用的(使用就是同时存在而且还能跑)

类似于纸币,旧纸币和新纸币,.properties 后缀的配置文件 就类似于“旧纸币”,.yml类似于“新纸币”但是效果都是一样的100元,不能当50元用嘛,还是原来的价值(都可以使用,也可以并存)

2.1、使用注意

<1>虽然.properties文件和.yml文件是可以在同一个项目中,但是这样也会有所影响,.properties文件的优先级还是比较高的,.properties配置文件会先进行加载,.yml配置文件也加载但是需要在.properties配置文件之后

<2>尽可能的使用一种格式的配置文件,便于维护(降低故障可能性),推荐在刚刚开始学习SpringBoot的时候使用.properties配置文件

3、properties配置文件

properties配置文件是早期文件格式,也是默认格式,在创建Spring Boot项目时,会直接创建好

3.1、注释中文问题

有的友友肯定会遇到注释中文乱码 

Spring Boot配置文件

 在配置文件中输入 中文注释,当关闭idea再次打开时就会出现乱码

不如提前解决这个问题,以免后面遇到了临时处理很慌乱(提前预判)(修改两个地方)

<1>当前项目修改字符集

Spring Boot配置文件

<2>修改新项目的字符集

Spring Boot配置文件最后操作:就是把本项目刚刚加载的properties配置文件给删了,自己从新创建一个,就也是utf-8字符集 

3.2、properties语法格式

properties是键值对的形式配置的,键值连接方式是 “= ”连接的

这里演示几个给友友们看,这里推荐友友们下载一个插件(这是社区版的插件,可以支持配置文件的快捷提示,方面我们输入)

File -> Settings -> plugins

Spring Boot配置文件

 安装完成后,idea重启 就可以了

# 首次使用properties配置文件
#配置文件中 设置端口号
server.port=8080
#设置数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/class?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root

#也可以自定义 设置键值对

javaclass=myclass

3.3、读取配置文件

配置不仅仅可以设置连接,端口号等固定操作,还可以设置自定义,在项目中会有主动读取配置文件内容情况,这里就涉及到了一个新的注解@Value来实现

3.3.1、Value读取

使用操作:@Value("${key}")   这里的key就是键

就以上面的配置文件为例,我们拿一下 端口号 和 自定义设置的键值对

Spring Boot配置文件

@RestController   //相当于  @Controller注解 和 @ResponseBody注解
@RequestMapping("/test")         //设置路由
public class TestController {

    @Value("${server.port}")
    public String port;

    @Value("${javaclass}")
    public String mystr1;

    @RequestMapping("/port")   //设置二级路由
    public void sayhi(){
        System.out.println("从配置文件中拿出的端口号:"+port);
        System.out.println("自定义配置文件键值对取值:"+mystr1);
    }
}

类写完之后,开始启动Maven ,此时启动控制台并不会打印什么,需要访问这里写的myport路由

控制台才会显示打印结果

运行结果: 都是我们刚刚配置文件中设置的

Spring Boot配置文件

3.3.2、PropertySource读取

@PropertySource注解读取方法只能读取properties配置文件

下面就来演示@PropertySource注解的读取操作,这里是指定读取哪个properties配置文件

使用一个类来演示

//组合注解
@RestController
//该注解 指定读取的配置文件 如果出现乱码问题也可以设置字符集
@PropertySource(value = "application.properties",encoding = "utf8")
//设置路由地址
@RequestMapping("/proper")
public class ProperController {
    @Value("${server.port}")
    private String port;

    @Value("${spring.datasource.url}")
    private String url;
    @RequestMapping("sayhi")
    public void sayhi(){
        System.out.println("指定配置文件获取端口:"+port);
        System.out.println("指定配置文件获取连接:"+url);
    }
}

 剩下部分就交给启动了,启动后需要访问路由才能看见打印结果

运行结果:(友友们也可以从新创建一个properties配置文件进行操作,两个配置文件中设置不同的端口号,想要加载那个就给注解中添加那个配置文件)

Spring Boot配置文件

注:该注解只能支持properties为后缀的配置文件 

3.3.3、原生方式读取配置文件

原生的读取配置文件的方式是使用 Properties 类,该类只支持以 .properties 为后缀的属性文件,不支持读取 YAML 格式的配置文件

@RestController
@RequestMapping("/native")
public class NativeController {
    @RequestMapping("/sayhi")
    public void sayhi() throws IOException {
        //创建properties对象 
        Properties properties=new Properties();
        //获取配置文件中的字节   同时设置字符集
        InputStreamReader inputStreamReader=new InputStreamReader(
                this.getClass().getClassLoader().getResourceAsStream("application.properties"),
                StandardCharsets.UTF_8);
        //properties配置文件加载字节流
        properties.load(inputStreamReader);
        //获取后就可以直接进行打印了
        System.out.println("Properties port:"+properties.getProperty("server.port"));
    }
}

3.4、properties缺点分析

properties配置是以键值对的形式配置的

但是配置冗余代码过多,前面写有一个连接数据库的配置(url,username,password前缀相同但是都需要再写一次)

Spring Boot配置文件

 当然除了这个缺点,有个有利于我们的优点就是格式很简单(“=”号连接的键值对),允许空格随便打

4、yml配置文件

yml全称是yaml(Yet Another Markup Language),是一种基于文本的数据序列化语言,这里说yml是一种“语言”,是一种新的通用数据序列化格式(操作简洁)

4.1、优点分析

<1>易读性高:YAML的语法结构简单、清晰,易于理解和阅读。它的格式类似于自然语言,可以直接将数据表示为键值对,而不需要大量的标记和转义字符。

<2>可维护性高:由于YAML的易读性,它更容易维护和修改。在开发过程中,程序员可以使用YAML格式的配置文件轻松地进行调试和修改,而无需关心底层的数据结构。

<3>支持多种类型的数据:除了常见的字符串、数字、布尔值之外,YAML还支持数组、哈希表等多种类型的数据,能够满足各种应用场景的需求。同时,YAML也支持一些高级特性,比如引用和锚点等,方便用户在大型文件中进行数据共享和重复利用。

<4>平台无关性:YAML是基于文本的数据序列化格式,不依赖于任何特定的编程语言或操作系统平台,因此具有良好的跨平台可移植性。

<5>支持编程语言更为丰富,它不止限制于java使用,也可以使用在Python、PHP、JS等

虽然优点很多,但是初学者使用Spring Boot不推荐使用,格式规定简洁能省很多事情,但是格式是比较固定的,不谨慎容易出错

4.2、yml语法格式

yml是树形结构的配置文件,优点类似于Python的基础语法格式,空格划分等级,这里也是使用键值方式,连接键值方式 “key: value”

注:key后面有一个:冒号和一个空格,这个空格不能少(少了会报错)

这里就还是拿刚刚properties的配置再yml中再写一下

#yml配置文件 设置端口号
server:
  port: 8080
# 设置连接数据库
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/class?characterEncoding=utf8
    username: root
    password: root
#设置自定义 键值
javaclass: myclass

代码冗余减少了,连接数据库需要写一次spring: datasource: 

4.2.1、设置不同数据类型

#设置字符串 以下这些都是我们自己设置的键值 不是yml中自带的
string.value: string-hello

#设置布尔类型
boolean.value: true;

#设置整数
int.value: 100

#设置浮点数
float.value: 2.712
float.value1: 2712e-5  #使用科学计数法

#NULL表示 ~
null.value: ~

4.2.2、yml配置读取

yml的读取操作和properties配置文件基本是一样的,使用@Value注解 参数中除了把key放入,注意:不是使用:冒号连接,这里获取对象是.点来连接,现在我们先把刚刚properties配置文件中的内容注释掉, 以免影响yml加载,properties加载早于yml,也会优先使用properties

还是在controller包中添加一个新类在写yml读取,ReadYml类

Spring Boot配置文件

 4.2.3、配置对象

在配置文件中也可以写一个对象以及对象的属性

下面就来展示一下

#可以写成键值不同等级的形式
student:
  id: 1
  name: 白无常
  age: 20
#也可以将对象直接写成类似数组的形式 行内写法
student1: {id: 2,name: 黑无常, age: 25}

针对对象的读取就不能通过@Value注解来实现了,需要使用另外一个注解,此处又要接触一个新的注解了@ConfigurationProperties注解来读取

读取对象是将配置文件中的对象获取,所以要添加注解加载配置文件中指定的对象

这里需要创建一个对应的实体类,当然也不一定完全需要,多几个属性,最多就是值为null

Spring Boot配置文件

实体类代码:

@ConfigurationProperties(prefix = "student")   //加载配置文件中 对应到的对象
@Component                            //类注解
@Setter//lombok set方法注解
@Getter//lombok get方法注解
@ToString//lombok toString方法注解
public class StudentComponent {
    private int id ;
    private String name;
    private int age;
}

控制层代码:

@RestController   //相当于  @Controller注解 和 @ResponseBody注解
@RequestMapping("/test")         //设置路由
public class TestController {

    @Value("${server.port}")
    public String port;

    @Value("${javaclass}")
    public String mystr1;


    @Autowired
    private StudentComponent studentComponent;

    @RequestMapping("/port")   //设置二级路由
    public void sayhi(){
        System.out.println("从配置文件中拿出的端口号:"+port);
        System.out.println("自定义配置文件键值对取值:"+mystr1);
        System.out.println(studentComponent.toString());
    }
}

4.2.4、配置集合

配置文件也可以存放list集合,写法上和对象有几分相似

配置文件代码 ,这里写的代码也是yml文件中写的

#设置集合
databasetypes:
  name: [mysql,sqlserver,db]

#集合的行内写法
databaserow: {name: [mysql,sqlserver,db]}]}

读取集合:

这里我们还需要创建一个实体类来接收这个集合 (如下操作)

Spring Boot配置文件

 针对集合创建的实体类:

@ConfigurationProperties(prefix = "databasetypes")
@RestController
@Setter
@Getter
@ToString
public class StudentComponent2 {
    private List<String> name;
}

 注:prefix如果注解中参数只有一个,可以加也不加,前面写的就没有加

属性注入,这里就不在附加代码了,在之前附加的代码上添加即可

当然了,系统配置不是就止于此(有需求的友友们,可以自行去官网看看,下面是官网网址)

Common Application Properties

 5、properties和yml区别

<1>语法:Properties 使用简单的键值对格式,例如 key=value;而 YAML 使用缩进和换行来表示数据结构

<2>数据类型:Properties 中的值只能是字符串类型;而 YAML 支持多种数据类型,例如字符串、整数、浮点数、布尔值、日期等

<3>复杂度:Properties 的数据结构相对简单,通常用于存储简单的配置信息;而 YAML 支持复杂的数据结构,例如列表、嵌套结构等,更适合存储较为复杂的数据

<4>可读性:由于 YAML 使用缩进和换行进行格式化,具有很好的可读性和易用性,更容易被人类阅读和编辑;而 Properties 的格式相对简单,不够直观

6、设置不同创建环境的配置文件

此处问就来使用一套配置文件,这里使用yml这套配置文件,这里就将properties配置文件删除或者注释掉(同时对应的类也需要稍微做已处理)

针对不同平台需要端口号不同 

例如:

开发环境:需要使用端口号为 9090

测试环境:需要使用端口号位 8090

 就以这两个环境来解释 ,现在每一个环境就需要一个配置文件,那就分别创建一个配置文件,同时这里还会有一个主配置文件,主配置文件中不需要设置端口号,因为不同环境下有不同的端口号(需要设置的是不同的内容,而相同内容不需要设置),主配置文件是公用的

操作: spring: profiles: active: 文件名可以修改的部分

Spring Boot配置文件

 我们这里创建的文件看着比较有规律,实际上只能这么创建,这是一种创建格式

例如: application-dev.yml  其实只有黑色这部分我们能改,其他都是固定格式,dev也就是创建的名称

Spring Boot配置文件

 注:公共部分放在主配置文件中,只有特殊部分用其他配置文件来表示文章来源地址https://www.toymoban.com/news/detail-429370.html

到了这里,关于Spring Boot配置文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Boot】Spring Boot配置文件详情

     Spring Boot是一个开源的Java框架,用于快速构建应用程序和微服务。它基于Spring Framework,通过自动化配置和约定优于配置的方式,使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件,包括嵌入式Web服务器、安全性、数据访问、缓存、测试

    2024年02月12日
    浏览(56)
  • Spring —— Spring Boot 配置文件

    JavaEE传送门 JavaEE Spring —— Bean 作用域和生命周期 Spring —— Spring Boot 创建和使用 如果没有配置信息, Spring Boot 项目就不能连接和此操作数据库, 甚至是不能保存可以用于排查问题的关键日志, 配置文件的作用是非常重要的. 系统使用的配置文件 (系统配置文件), 如端口号的配

    2023年04月09日
    浏览(40)
  • Spring Boot配置文件

    日升时奋斗,日落时自省  目录 1、配置文件作用 2、配置文件格式 2.1、使用注意 3、properties配置文件 3.1、注释中文问题 3.2、properties语法格式 3.3、读取配置文件 3.3.1、Value读取 3.3.2、PropertySource读取 3.3.3、原生方式读取配置文件 3.4、properties缺点分析 4、yml配置文件 4.1、优点

    2024年02月01日
    浏览(40)
  • 【Spring Boot学习一】创建项目 && Spring Boot的配置文件

    目录 一、安装插件 二、创建Spring Boot项目 1、创建项目 1.1 使用IDEA创建  1.2 网页版本创建 2、项目目录介绍与运行 三、Sping Boot的配置文件(重点) 🌷1、.properties配置文件 (1)基础语法:Key = value (2)读取配置⽂件中的内容,@Value 注解使⽤“${}”的格式读取; 🌷2、.y

    2024年02月16日
    浏览(42)
  • Spring Boot读取配置文件

    Spring Boot 是一种用于快速构建基于Spring的应用程序的框架,它提供了很多便利的功能和约定,使开发者可以快速搭建、配置和部署应用程序。在Spring Boot中,读取配置文件是一个非常常见的任务,本文将介绍如何在Spring Boot应用程序中读取配置文件,并使用读取到的配置信息。

    2024年02月07日
    浏览(51)
  • Spring Boot的配置文件

    Spring Boot中的配置文件有两种:properties格式和yml格式 一、propertise格式 propertise格式是Springboot默认的配置文件的格式,它才有键值对key=value的方式存储配置信息,有系统key值和自定义key值两类。 系统key值就是Spring boot约定的一些key值,通过设置这些key对应的value值可以配置对应

    2024年02月09日
    浏览(52)
  • Spring Boot配置保存日志文件

    springboot日志配置: springboot默认日志是打印再console中的,不会保存在文件中。我们项目上线肯定要保存日志用于分析的。 一、使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了) 1、在项目的resources目录下创建一个【logback-spring.xml】日志配置文件

    2024年02月11日
    浏览(45)
  • Spring Boot 配置文件和日志

    目录 配置文件格式 properties配置文件说明 1.properties基本语法 2.读取配置文件 3.properties缺点 yml配置文件说明 1.yml基本语法 2.配置不同数据类型 3.字符串特殊情况 4.配置对象 properties和yml对比 日志 日志的使用 日志级别 日志持久化 Lombok Lombok原理解释 Spring中配置文件有很重要的

    2024年01月19日
    浏览(59)
  • 【JavaEE】Spring Boot - 配置文件

    【JavaEE】Spring Boot 开发要点总结(2) 所有重要和必要的数据都是在配置文件中配置的 简洁明了,干净利落,修改方便,相比于xml,更有代码的感觉,功能用处也更多更被重视 例如: 数据库的连接时的需要的信息配置(用户名,url,密码) 项目的启动端口是什么(server.po

    2024年02月14日
    浏览(40)
  • Spring Boot 系列2 -- 配置文件

    目录 1. 配置文件的作用 2. 配置文件的格式 3. properties 配置文件说明 3.1 properties 基本语法 3.2 读取配置文件 3.3 properties 缺点 4.yml 配置文件说明 4.1 yml 基本语法 4.2 yml 使用进阶 4.2.1 yml 配置不同数据类型及 null 4.2.2 yml 配置读取 4.2.3 注意事项:value 值加单双引号 4.2.4 配置对象

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包