Spring Boot配置文件及日志信息

news2024/12/23 18:41:03

目录

前言:

Spring Boot优点

配置文件

配置文件格式

读取配置文件

properties配置文件格式

properties优缺点分析

yml配置文件格式(另一种标记语言)

yml优缺点分析

Spring Boot 不同平台配置文件规则

日志信息

日志的功能

Spring Boot内置日志框架

使用日志

得到日志对象

打印日志

日志格式说明

日志级别

配置文件设置日志级别

日志持久化

小结:


前言:

    使用Spring Boot框架就是为了更加简单快速的使用Spring容器。Spring Boot就是Spring的脚手架,底层就是Spring容器。

Spring Boot优点

    1)快速集成框架:快速添加外部jar包。

    2)内置web框架:可以直接运行。

    3)快速部署:不依赖任何web容器。

    4)抛弃繁琐的xml格式的配置文件。

    5)支持更多的监控指标:可以更加容易且直观观察到项目运行情况。

配置文件

    Spring Boot默认配置文件为properties格式的文件。我们可以添加yml(yaml)格式的配置文件。两种配置文件写法差异很大。

    properties是key - value的形式,而yml类似于json的格式。两种配置文件是不同时代的产物,各有千秋。

配置文件格式

    1)properties

    2)yml(yaml)

注意:

    1)两种配置文件从功能上来讲是可以同时存在的,但企业会规定使用某一种配置文件(规范)。

    2)如果同一个项目出现两种配置文件的话,那么以properties为主(毕竟是Spring Boot默认格式)。

读取配置文件

    1)不论是properties,还是yml格式的配置文件都使用@Value("${key}")注解。它会找到配置文件中对应的key的value值,赋值到当前属性中。

    2)yml格式读对象:@ConfigurationProperties("对象名")前提需要一个类,属性包含yml中对象属性,提供set方法,让spring操作(当然也需要托管到spring中)。Spring Boot就可以通过set方法将配置文件中的属性设置到当前类中。

yml配置文件

Java代码中的实体类

properties配置文件格式

key=value

配置项分类:

    1)系统配置项,比如servler.port/spring.datasource.url...。

 可查看更多的系统配置项。

Common Application Propertiesicon-default.png?t=N3I4https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

    2)用户自定义配置(key用户自定义)。

properties优缺点分析

优点:

    1)系统默认的配置文件。

    2)properties优先级比yml高。

    3)格式简单,不容易出错。

缺点:

    写法比较冗余(有等级之分,可能前面等级一致,那么不同的配置项就需要写多次前面部分的配置项)。

yml配置文件格式(另一种标记语言)

key: value

注意:

    冒号后面有个空格,书写时需要严格按照这样的格式。Spring Boot会按照这样的格式去解析配置文件。

    同样存在。系统配置项和用户自定义项。

yml优缺点分析

    1)yml 是⼀个可读性高,写法简单、易于理解,它的语法和 JSON 语言类似。

    2)yml 支持更多的数据类型,它可以简单表达清楚(数组)、散列表,标量等数据形态。它使用空白符号缩进和⼤量依赖外观的特色,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

    3)yml 支持更多的编程语言,它不止是 Java 中可以使用在 Golang、PHP、Python、Ruby、JavaScript、Perl 中。

Spring Boot 不同平台配置文件规则

    开发,测试和生产环境使用的都是不同的数据库,不同的端口号等等。那么我们在不同的环境下就需要使用不同的配置文件。

    1)必须有主配置文件,主配置文件名必须是application.yml(.properties)。存放的是所有配置文件的共性,并且需要选择具体使用哪一个其他的配置文件。

    2)不同平台的配置文件,每个平台拥有一个配置文件,配置文件名必须是application-xxx.yml(.properties)

主配置文件中选择具体哪一个平台的配置文件

spring:
  profiles:
    active: test

日志信息

日志的功能

    1)发现和定位问题。

    2)记录用户登录日志,可以分析用户状态。

    3)记录操作系统日志,方便数据恢复和定位操作人。

    4)记录程序执行时间,为以后程序优化提供支持。

Spring Boot内置日志框架

    通过SLF4J来选择具体使用的日志框架,那么后续系统需要更换日志框架,直接更换就可以。SLF4J可以匹配相应的日志框架,使系统的依赖性降低,利于系统更新和维护。

使用日志

得到日志对象

    1)每一个类对应一个日志对象。可以通过LoggerFactory工厂模式获取日志对象。

private static final Logger log = LoggerFactory.getLogger(TestController.class);

    2)使用Lombok插件为我们提供的@Slf4j注解,会为当前类提供一个log对象,直接使用就可以。Lombok在编译前会把注解替换成对应的代码,直接进行编译。

打印日志

public String hello() {
        // 打印日志
        // 默认日志级别是info 只有大于等于info级别才会显示
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
        
        return "hello world";
    }

    不同的方法名代表不同的日志级别,日志默认级别是info,只有大于等于info级别才会显示到控制台中。

    配置文件中控制日志级别可以在不同环境打印不同级别的日志(不同的环境所关注的日志信息会有所差异)。

日志格式说明

 

日志级别

    1)trace:微量,少许的意思,级别最低。

    2)debug:需要调试时候的关键信息打印。

    3)info:普通的打印信息(默认日志级别)。

    4)warn:警告,不影使用,但需要注意。

    5)error:错误信息,级别较高的错误日志信息。

    6)fatal:致命的,因为代码异常导致程序退出的事件(操作系统负责调度)。

配置文件设置日志级别

    为什么要设置日志级别,因为在不同环境中,需要关注的日志信息不同。比如开发环境就需要特别关注debug级别的日志信息,而生产环境就不需要关注。

    配置日志级别我们就可以只关注我们想看的日志信息。

logging:
  level:
    root: error
    com:
      example:
        demo:
          controller: error
          service: warn

    root设置的是全局日志级别,项目中所有日志级别都是error。和root同级下可设置具体类的日志级别。这里就是com.example.demo.controller和com.example.demo.service类,级别分别为error和warn。

日志持久化

    生产环境日志不可能都打印到控制台中,需要将其保存到文件中,方便相关人员去查看日志。

只需要在配置文件中配置日志保存的绝对路径即可,Spring Boot会将日志写入对应文件中。

logging:
  file:
    name: E:\javaCode\log\log_all.log

    name 可以具体设置日志保存文件名;path 默认文件名为spring.log。日志是追加写的,日志一旦产生就会永久保存。

    Spring Boot默认日志文件大小为 10MB 超过10MB就会创建新的日志文件。

小结:

    熟练使用配置文件和日志信息的控制可以很大程度帮助我们开发系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/473059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot +Flowable,设置任务处理人的四种方式(一)

一.简介 学习下UserTask 设置用户的三种方式,至于如何设置用户组,下篇文章再聊。 现在,假设我有如下一个简单的流程图: 那么该如何设置这个用户节点的处理人? 二.第一种:指定具体用户 第一种方式&…

电路中噪声来源

电路包括不同的部件和芯片,所有都有可能成为噪声的来源。例如,电阻会带来热噪声,这个噪声为宽频噪声,几乎涵盖所有频率范围;运算放大器其芯片内部会产生噪声;而 ADC产生的量化噪声相较于其他器件&#xff0…

【】右值引用完美转发

文章目录 右值引用和左值引用左值和右值概念左值引用 && 右值引用右值引用使用场景和意义左值引用的使用场景**左值引用的短板:**右值引用和移动语义STL容器增加的接口move函数右值引用的其他使用场景 完美转发万能引用完美转发保持值的属性完美转发的使用场景 右值引用…

【Linux】进程信号 --- 信号产生 信号递达和阻塞 信号捕捉

🍎作者:阿润菜菜 📖专栏:Linux系统编程 文章目录 一、预备知识二、信号产生1. 通过终端按键产生信号1.1 signal()1.2 core dump标志位、核心存储文件 2.通过系统调用向进程发送信号3.由软件条件产生信号3.1 alarm函数和SIGALRM信号…

vue3通过ref拿element弹框中的组件问题

写在<el-dialog>中的组件&#xff0c;在一开始&#xff0c;弹框没有弹出来的时候&#xff0c;<el-dialog>中的组件是没有被渲染出来的&#xff0c;因此在<el-dialog>中使用ref标记某个组件&#xff0c;在el-dialog没有被渲染出来之前去拿的话&#xff0c;是拿…

ml常见代码片段

常用ML代码片段 变换一列 new_df[brand] new_df[prod_name].apply(lambda x: x.split()[0])变换2列 new_df[chip_total_sales] new_df.apply(lambda x: x[total_sales] * x[is_chip], axis 1) # 重要的是axis1groupby 计数&#xff0c;求和&#xff0c;取第一个值&#x…

C语言起源、特性和发展历程

本文从ALGOL 60语言谈起&#xff0c;简述C语言的起源和发展历程&#xff0c;然后对C语言的一些特性做了探讨&#xff0c;最后说说C语言为什么在众多编程语言中&#xff0c;起到了承上启下的作用。 本文介绍以下内容&#xff1a; C语言的起源C语言的发展C语言的特性C语言的重要…

外卖项目优化-01-redis缓存短信验证码、菜品数据

文章目录 外卖项目优化-01课程内容前言1. 环境搭建1.1 版本控制解决branch和tag命名冲突 1.2 环境准备 2. 缓存短信验证码2.1 思路分析2.2 代码改造2.3 功能测试 3. 缓存菜品信息3.1 实现思路3.2 代码改造3.2.1 查询菜品缓存3.2.2 清理菜品缓存 3.3 功能测试3.4 提交并推送代码…

AutoGPT安装教程

最近安装AutoGPT时遇到了一些问题&#xff0c;写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接&#xff1a;https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key&#xff0c;这里就不介…

【超算/先进计算学习】日报8

目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记阶段一阶段二阶段三阶段四 对自己的表现是否满意简述下次计划其他反馈 今日已完成任务列表 超算/高性能计算总结 遇到的问题及解决方案 无 任务完成详细笔记 阶段一 在学习的第一阶段&#xff0c;我们首先对需要…

ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎

作为家电行业的风向标和全球三大消费电子展之一&#xff0c;4月27日-30日&#xff0c;以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行&#xff0c;本届展会展现了科技、场景等创新成果&#xff0c;为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…

【pytest里的参数化:看几个例子就够了!】

参数化多个参数&#xff1a;可以使用多个参数来参数化测试。例如&#xff1a; import pytestpytest.mark.parametrize("x, y, expected", [(1, 2, 3),(3, 4, 7),(5, 6, 11), ]) def test_addition(x, y, expected):assert x y expected参数化列表&#xff1a;可以…

轻叶H5营销单页,让你的营销更加清爽高效

网络营销就是营销企业品牌形象、产品信息发布、优惠促销活动&#xff0c;最终目的就是争抢流量和客户。现在为了吸引流量&#xff0c;各种营销方式、广告玩法层出不穷&#xff0c;成本投入大&#xff0c;带来的转化不一定好。今天&#xff0c;我们要来讲一讲H5营销单页。 H5营销…

项目管理软件project下载安装配置图文教程

目录 前言 配置安装过程 总结 前言 Project是一种计划、组织和管理任务的工具&#xff0c;通常用于团队协作和项目管理。它可以帮助用户创建任务列表、分配任务、设置截止日期、跟踪进度、分析数据等。Project还可以生成各种报告&#xff0c;如甘特图、资源使用情况、任务分…

稀疏矩阵存储格式总结

稀疏矩阵是指矩阵中的元素大部分是0的矩阵&#xff0c;实际问题中大规模矩阵基本上都是稀疏矩阵&#xff0c;很多稀疏度在90%甚至99%以上,大规模的稀疏造成了大量无效数据的计算和存储资源占用&#xff0c;也无法有效的载入有限内存计算。因此我们需要有高效的稀疏矩阵存储格式…

SpringCloud:ElasticSearch之数据同步

elasticsearch中的酒店数据来自于mysql数据库&#xff0c;因此mysql数据发生改变时&#xff0c;elasticsearch也必须跟着改变&#xff0c;这个就是elasticsearch与mysql之间的数据同步。 1.思路分析 常见的数据同步方案有三种&#xff1a; 同步调用异步通知监听binlog 1.1.同…

Nacos配置中心的详解与搭建

Namespace 简介 用于进行租户粒度的配置隔离&#xff0c;不同的命名空间下&#xff0c;可以存在相同的 Group 或 Data ID 的配置 配置Namespace 点击nacos的命名空间——点击新建命名空间 开发环境【dev】测试环境【test】正式环境【prod】 DataID 简介 Data ID 通常用于…

Node.js 下载与安装教程

文章目录 Node.js 下载Node.js 安装npm 配置配置node_path修改用户变量更换npm源为淘宝镜像全局安装基于淘宝源的cnpm Node.js 下载 1.进入nodejs官网&#xff1a;https://nodejs.org/en 2.单击downloads 3.此时滑动滚动条&#xff0c;找到并单击 previous release 4.在此页…

<C++>lesson1.C++入门上

文章目录 1. C关键字(C98)&#x1f49a;2. 命名空间&#x1f90e;2.1 命名空间定义2.2命名空间的使用 3. C输入/输出&#x1f5a4;4.缺省参数&#x1f499;4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载❤️5.1 函数重载的概念5.2 C支持函数重载的原理 6. 引用&#x1f49c;6.…

Day4_Springboot集成Mybatis

上一节使用springboot框架搭建了项目&#xff0c;并创建了数据库user表&#xff0c;接下来集成mybatis对用户表实现增删改查操作~~~~ 目录 SpringBootApplication.java 创建model/entity文件夹&#xff0c;存放实体类 UserDao.java UserController.java 浏览器Json插件&am…