[JAVAee]SpringBoot配置文件

2023-09-18 22:02:57

配置文件的介绍

配置文件当中记录了许多重要的配置信息,例如:

  • 数据库的连接信息(用户的账户与密码)
  • 项目的启动端口
  • 第三方系统的调用密匙
  • 用于记录问题产生的日志

在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用.

配置文件中的属性也起到了类似全局变量的作用. 

对于一个项目,可以准备多种配置文件方便自由调用来应对不同的情况.

放置在resources目录下 

配置文件的格式

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

  • .properties(spring boot默认)
  • .yml

properties与yml都是配置文件,类似于同一件实物来说,properties是旧版的而yml是新版的.

properties与yml的优先级

properties与yml可以出现在同一个项目当中,还是建议在一个项目下使用同一种类型的配置文件.

但properties的优先级会更高,项目先加载properties中的配置,在这之后才去加载yml的.

 下面来示范一下.

①在同一个项目中分别放置properties与yml的配置文件

②分别在两种配置文件中配置同一属性的信息

yml配置的端口号为:666

properties配置的端口号为:123 

③在类中调用并打印查看结果

观察得到,打印的端口号为123,即是properties配置文件中的信息. 

注意,虽然properties配置文件在SpringBoot的优先级更高.但并不表示不会载入yml的信息噢,只是在同一个属性上优先使用properties中的信息. 

properties配置文件的说明 

properties是配置文件的早期文件类型,是spring boot的默认配置文件类型

基本语法

在properties是以键值对的方式来赋值,其中key与value是以"="来连接.

server.port = 123
#使用"#"在配置文件中进行注释

读取配置文件信息

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

其中@Value注解的格式为${}

@Value("${server.port}")

缺点分析

当在配置相近的内容时,会额外的产生冗余的信息.

yml配置文件的说明

yml是yaml的缩写,全称为:Yet Another Markup Language(另一种标记语言).

对于properties来说,yml支持了更多的编程语言.还支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件.

基本语法 

yml的语法与JSON差不多,但yml使用":" + "(空格)"的形式组合连接key与value,其中的空格不要省略噢.

server.port: 666

对比: 

使用

①与properties对比

左边为yml,右边为properties.

可以观察到yml中的书写更为简便一些. 

②配置数据类型

yml还可以配置数据类型以及null(properties不可配置数据类型噢~)

 ③配置对象

写法一:

写法二:

配置文件中对象的读取

 对于yml中的对象就不能使用@Value来读取了

而是使用@ConfigurationProperties.

@ConfigurationProperties(prefix = "student1")//student1为yml中对象名称
@Component
public class Student {
    private int age;
    private String name;
    private String id;

    //其中getter与setter方法不能省略
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

读取 

yml的基本读取与properties的@Value注解读取一直,特殊的对象读取也说明,此处不再赘述.

更多推荐

【ELK】日志系统&部署

一、ELK日志分析系统1、ELK的组成ElasticSearchLogStashKibanaELK基于这三个开源日志的收集、存储、检索和可视化的解决方案;可帮助用户快速定位和分析应用程序的故障,监控应用程序性能和安全,以及提供丰富的数据分析和展示功能。2、完整日志系统特征ELK是一个完整的处理分析日志的系统收集:能够采

ELK企业级日志分析系统

1.ELKELK概述ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elastic

ELK 企业级日志分析系统

1、ELK简介ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elastics

LabVIEW开发基于物联网的多功能功率分析仪

LabVIEW开发基于物联网的多功能功率分析仪根据技术规则,电气元件网络中的单个被创建为在标称正弦波振动制造频率下运行。失真顺序的电流和电压波与正弦波不同,它们或多或少地扭曲成形状。它是由交流网络中非线性组件的存在引起的,例如静态转换器、旋转电气设备和电力变压器。由于其独特的特性,包含功率开关静态转换器的电流消费者是网

68、Spring Data JPA 的 方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)

1、方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)2、@Query查询(半自动:提供SQL或JPQL查询)3、自定义查询(全手动)★方法名关键字查询(全自动)(1)继承CrudRepository接口的DAO组件可按特定规则来定义查询方法,只要这些查询方法的方法名遵守特定的规则,SpringDa

如何进行性能测试

文章目录前言什么是性能测试为什么要做性能测试怎么做我们的性能测试SoloPiSoloPi的介绍和安装SoloPi的性能数据前言随着科学技术的迅速发展,信息时代离不开软件,软件的成功上线离不开软件测试的功劳,因此软件测试对于软件的重要性不言而喻。性能测试作为软件测试中的一部分,通过自动化测试工具模拟多种正常、峰值以及异常

Flutter实现地图上汇聚到一点的效果。

要求效果:实现的效果:代码:选择点的界面:import'dart:math';import'package:flutter/material.dart';import'package:get/get.dart';import'package:kq_flutter_widgets/widgets/animate/mapC

hive基于新浪微博的日志数据分析——项目及源码

有需要本项目的全套资源资源以及部署服务可以私信博主!!!该系统的目的是利用大数据技术,分析新浪微博的日志数据,从而探索用户行为、内容传播和移动设备等各个层面的特性和动向。这项研究为公司和个人在制定营销战略、设计产品和提供用户服务时,提供了有价值的参考和辅助。利用Hive平台,该系统可以处理和分析大量的微博数据,为我们提

数据治理-EDRM电子取证

EDRM是电子取证标准和指南的组织,该框架提供了一种电子取证的方法,对于涉及确定相关内部数据的存储方式和位置、适用什么保留策略、哪些数据不可访问以及哪些工具可用于协助识别流程的人员来说,这种方法非常方便。EDRM模型假定数据或信息治理已到位。该模型包括8个可以迭代的电子取证阶段,随着电子取证的发展,可取证的数据和信息的

C++:string类的常用接口说明及其模拟实现

本文主要介绍string类和该类常用的接口,并根据接口功能对其进行模拟实现。目录一、string类的常用接口说明1.string类对象的常见构造2.string类对象的容量操作3.string类对象的访问及遍历操作4.string类对象的修改操作5.string类非成员函数二、string的模拟实现1.默认成员函数和成

【CDN和UDN】CDN和UDN技术特点以及使用场景

内容分发网络(CDN)和用户自定义网络(UDN)是两种不同的网络技术,在选择时,往往不能准备把握具不同的技术特点和应用场景。CDN主要用于加速内容分发,而UDN则主要用于支持用户自定义的网络需求。本文简要介绍下内容分发网络(CDN):一种通过在多个地理位置部署缓存服务器来加速内容分发的网络技术。当用户请求内容时,CDN

热文推荐