IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot配置文件和日志 -> 正文阅读

[Java知识库]SpringBoot配置文件和日志

1. Spring Boot 优点

Spring Boot是为了快速开发Spring而诞生的,Spring Boot具备:

  • 快速集成框架,Spring Boot提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器,无需配置Tomcat 等 Web容器,直接运行和部署程序。
  • 快速部署项目,无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的XML,使用注解和配置的方式进行开发。
  • 支持更多的监控的指标,可以更好的了解项目的运行情况等特点。

Spring Boot可使用ldea 或网页创建,它的设计思想是约定大于配置,类上标注@SpringBootApplication就可以启动Spring Boot项目了。

2. SpringBoot 配置文件

2.1 配置文件作用

整个项目中所有重要的数据都是在配置文件中配置的,比如:
数据库的连接信息(包含用户名和密码的设置);
项目的启动端口;
第三方系统的调用秘钥等信息;
用于发现和定位问题的普通日志和异常日志等。

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

2.2 配置文件的格式

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

  • .properties
  • .yml

特殊说明

  1. 理论上讲properties可以和yml一起存在于一个项目当中,当properties和yml一起存在一个项目中时,如果配置文件中出现了同样的配置,比如properties和yml中都配置了“server.port”,那么这个时候会以properties 中的配置为主,也就是.properties配置文件的优先级最高,但加完.properties文件之后,也会加载.yml文件的配置信息。

  2. 虽然理论上来讲.properties可以和.yml 共存,但实际的业务当中,我们通常会采取一种统一的配置文件格式,这样可以更好的维护(降低故障率)。这就好像连锁店的服饰一样,不管是老款的服装还是新款的服装,一定要统一了才好看。

2.3 properties 基本语法

properties是以键值的形式配置的, key和value之间是以“=”连接的,如:

# 配置项?端?号
server.port=8084
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

一般会有根配置文件开发环境配置文件生产环境配置文件三类或多种。可以在application.properties中使用spring.profiles.active=dev指定生效的配置文件。
在这里插入图片描述

在这里插入图片描述

2.4 读取配置文件 -》@Value

读取配置文件方式1
如果在项目中,想要主动的读取配置文件中的内容,可以使用@Value注解来实现。@Value注解使用“$”的格式读取,如下代码所示:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadYml {
    @Value("${server.port}")
    private String port;
    @PostConstruct
    public void postConstruct() {
        System.out.println("Read YML,port:" + port);
    }
}

最终执行效果:
在这里插入图片描述

@Component在Spring Boot启动时候会注入到框架中,注入到框架中时会执行@PostConstruct初始化方法,这个时候就能读取到配置信息了。

读取配置文件方式2:@ConfigurationProperties 读取一个实体类(此时配置文件格式必须为yml)
在这里插入图片描述

2.5 yml 基本语法

yml是树形结构的配置文件,它的基础语法是“key: value”,注意key和value 之间使用英文冒汗加空格的方式组成的,其中的空格不可省略。
基础语法如下:
在这里插入图片描述
其中第一项的配置为正确的,key也是高亮显示的,而第二项没有空格是错误的使用方式,第二项的key 也没有高亮显示。

使用yml连接数据库示例:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
    username: root
    password: root

在这里插入图片描述

properties和yml连接数据库的配置对比
在这里插入图片描述

在这里插入图片描述
想要查看 Spring Boot 更多系统配置项,访问官网:https://docs.spring.io/spring-
boot/docs/current/reference/html/application-properties.html#application-properties

2.6 properties VS yml 总结

  • properties是以key=value的形式配置的键值类型的配置文件,而yml使用的是类似json格式的树形配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key 和value之间使用“:”英文冒号加空格的方式设置,并且空格不可省略。
  • properties为早期并且默认的配置文件格式,但其配置存在一定的冗余数据,使用yml可以很好的解决数据冗余的问题。
  • yml支持更多的数据类型,如布尔值、整数、浮点数、Null、对象和集合。
  • yml 通用性更好,支持更多语言,如Java、Go、Python等,如果是云服务器开发,可以使用一份配置文件作为Java和Go的共同配置文件。
  • yml虽然可以和properties共存,但一个项目中建议使用统一的配置类型文件。

3. SpringBoot 日志文件

3.1 日志格式说明

在这里插入图片描述

3.2 日志级别的分类与使用

3.2.1 日志的级别

  • trace:微量,少许的意思,级别最低;
  • info︰普通的打印信息;
  • debug:需要调试时候的关键信息打印;
  • warn:警告,不影响使用,但需要注意的问题;
  • error:错误信息,级别较高的错误日志信息;
  • fatal:致命的,因为代码异常导致程序退出执行的事件。

日志级别的顺序:
在这里插入图片描述
越往上接收到的消息越少。

3.2.2 日志的使用 -》@slf4j

日志级别配置只需要在配置文件中设置“logging.level”配置项即可,如下所示:

logging:
  level:
    root: error

默认日志输出级别
日志的输出级别,默认是info.

每次都使用LoggerFactory.getLogger(xxx.class)很繁琐,且每个类都添加一遍,也很麻烦,这里讲一种更好用的日志输出方式,使用lombok来更简单的输出。

  1. 添加lombok框架支持。
  2. 使用@slf4j注解输出日志。

添加 lombok 依赖:

<dependency>
  <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <optional>true</optional>
</dependency>

输出日志:

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/p")
@Slf4j
public class PersonController {
    @RequestMapping("/log")
    public void loggerTest() {
        log.error("------------------- error -----------------");
    }
}

lombok 更多注解说明
基本注解
在这里插入图片描述
组合注解
在这里插入图片描述
日志注解
在这里插入图片描述

3.3 日志持久化

以上的日志都是输出在控制台上的,然而在生产环境上咱们需要将日志保存下来,以便出现问题之后追溯问题,把日志保存下来的过程就叫做持久化。

想要将日志进行持久化,只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名之后Spring Boot就会将控制台的日志写到相应的目录或文件下了。

配置日志文件的保存路径:

# 设置?志?件的?录
logging:
  file:
    path: D:\home\ruoyi

配置日志文件的文件名:

# 设置?志?件的?件名
logging:
  file:
    name: D:\home\ruoyi\spring-1204.log

4. SpringBoot 单元测试

在这里插入图片描述

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 17:56:45  更:2022-06-25 17:57:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:49:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码