当前位置:首页 >> 技术栈专业化分层 >> 【Spring Boot】,索爱w20

【Spring Boot】,索爱w20

cpugpu芯片开发光刻机 技术栈专业化分层 1
文件名:【Spring Boot】,索爱w20 【Spring Boot】

目录

🍪1 Spring Boot 的创建

🎂2 简单 Spring Boot 程序

🍰3 Spring Boot 配置文件

🍮3.1 properties 基本语法

🫖3.2 yml 配置文件说明

🍭3.2.1 yml 基本语法

🍩3.3 配置文件里的配置类型分类

🍝3.4 不同配置环境下的配置文件

🥣4 Spring Boot 打印日志

🥢4.1 默认打印的日志 

🍉4.2 自定义打印日志

🍈4.3 给某个文件夹单独设置日志级别

🥝4.4 日志持久化

🥥4.5 设置日志的时间打印格式

🍇5 lombok

🥤5.1 前置工作

🍴5.2 使用 lombok 更加简单地输出日志


Spring Boot 是 Spring 的脚手架,是专门为了快速开发 Spring 框架而诞生的。

1 Spring Boot 的创建

类要与启动类放在一起

2 简单 Spring Boot 程序

以前的 Spring 只是一个普通的 Java 项目,没有办法直接与浏览器进行互动,而如今可以使用 Spring Boot 来实现浏览器和用户的交互。

package com.example.demo;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@ResponseBody@RequestMapping("/user")public class UserController {@RequestMapping("/sayhi")public String sayHi(){return "Hi, Spring Boot.";}}

在网址输入:

http://localhost:8080/user/sayhi 

 需要注意的是,需要将该类和启动类放置到同级目录下。

 

Spring Boot 具备以下优点:

1. 快速集成框架,Spring Boot 在创建时就可以添加依赖

2. 内置运行容器,无需配置 Tomcat 等 Web 容器,可以直接运行和部署程序

3. 快速部署项目,无需外部容器即可启动并运行项目

4. 抛弃繁琐的 XML ,使用注解和配置的方式进行开发

Spring Boot 的设计思想是约定大于配置。类上标注着 @SpringBootApplication 就可以启动 Spring Boot 项目了。

 

3 Spring Boot 配置文件

Spring Boot 里有两种配置文件:

application.properties,是创建 Spring Boot 项目时默认的文件格式

application.yml,需要用户自己来创建,属于新版的配置文件

特殊说明:

1. 如果 properties 和 yml 一起存在于同一个项目中,如果两个配置文件出现了同样的配置,都配置了 server.port,properties 是 8081,而 yml 设置成 8089,那么会以 properties 中的配置为主,也就是说,properties 配置文件的优先级更高。

2. 理论上两种配置文件可以共存,但在实际工作中,还是会选择其中一种配置文件,为了以后更好地维护。

3.1 properties 基本语法

properties 以键值对的形式书写,key 和 value 之间以 “=”连接的。如:

# 配置项目端口号server.port=8089

小技巧:配置文件中使用 # 来添加注释信息

 properties 会出现中文乱码问题,需要手动设置一下:

Settings 以及 New Projects Setup 中勾选如下:

 

这种语法格式也就意味着,properties 配置文件中会产生冗余的代码,比如:

# MySQL 配置项spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myblogspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

同样的功能,换了 yml 配置文件会如何呢?且看下一小节内容。

3.2 yml 配置文件说明

yml 是 YAML 的缩写,全称为 Yet Another Markup Language,其中文就是 “另一种标记语言”。

yml 优点分析:

1. 可读性高,写法简单,语法与 JSON 语言类似

2. 支持更多的数据类型

3. 支持更多编程语言,Java、Golang、PHP、Python、Ruby、JavaScript、Perl 中

3.2.1 yml 基本语法

yml 是树形结构的配置文件,基础语法是 key: value,注意 key 和 value 之间使用英文冒号加空格的方式组成,其中的空格不可以省略。

# 使用 yml 连接数据库spring:datasource:url: jdbc:mysql://127.0.0.1:3306/myblogusername: rootpassword: 123456

3.3 配置文件里的配置类型分类

配置类型分类:

1. 系统配置项,给系统(框架)使用的,比如 server.port

2. 用户自定义配置,开发者自己使用,如 myImage.path

 那对于用户自定义配置,用户该如何读取呢?

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

@Value 注解使用 "${}" 的格式来读取,见如下代码:

# 用户自定义配置项myImage.path=d:\\image\\ package com.example.demo;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;@RestControllerpublic class TestController {@Value("${myImage.path}")private String myImage;@RequestMapping("/sayhi")public String sayHi(){System.out.println(LocalDateTime.now() + "日志"+ "com.example.demo.TestController");return "你好,Spring Boot ->" + myImage;}} 3.4 不同配置环境下的配置文件 # 指定配置文件的运行环境spring.profiles.active=test

 

4 Spring Boot 打印日志

日志级别:

trace:日志级别最低

debug:调试日志级别

info:普通日志级别

warn:警告日志级别

error:错误日志级别

fatal:致命日志级别,只有系统在崩溃时才会输出的日志级别,级别最高

  

日志级别作用:过滤星系,将业务不需要的日志屏蔽掉

问题:Spring Boot 如何打印日志?

Spring Boot 内置了两个日志框架:SLF4J + LogBack

SLF4J 是让开发者使用和调用的框架,而 LogBack 是最底层实现日志相关操作的框架

4.1 默认打印的日志 

从左到右依次是:

日志发生的时间,日志级别,打印日志的线程 id,打印日志线程名称,日志打印的位置(包名+类名)以及日志内容

4.2 自定义打印日志

通过日志工程得到日志对象 -> 通过日志对象提供的打印方法来实现打印

package com.example.demo;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class LogController {// 1. 得到日志对象private static Logger log =LoggerFactory.getLogger(LogController.class);@RequestMapping("/log")public void log(){String msg = "今天周五,没有刮台风的一天";log.trace("trace -> " + msg);log.debug("debug -> " + msg);log.info("info -> " + msg);log.warn("warn -> " + msg);log.error("error -> " + msg);}}

 

4.3 给某个文件夹单独设置日志级别 # 当前项目默认的日志级别logging.level.root=info# 给 Controller 这个文件夹单独设置日志级别logging.level.com.example.demo.Controller=debug 4.4 日志持久化

Spring Boot 还支持将日志保存到磁盘中。

# 设置日志的保存路径logging.file.path=C:\\image\\# 设置日志的保存文件名logging.file.name=C:\\image\\springboot.log

日志的添加方式不是覆盖,而是叠加。

4.5 设置日志的时间打印格式 # 设置日志时间的打印格式logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss

5 lombok 5.1 前置工作

安装一个 lombok 插件

在项目中添加 lombok 依赖 

之后便可以使用 lombok 来编写代码了。

5.2 使用 lombok 更加简单地输出日志 package com.example.demo;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@Slf4jpublic class LogController2 {@RequestMapping("/log2")public void log2() {String msg = "今天周五,没有刮台风的一天";log.trace("trace -> " + msg);log.debug("debug -> " + msg);log.info("info -> " + msg);log.warn("warn -> " + msg);log.error("error -> " + msg);}} @SLF4J // 等同于以下代码 private static Logger log = LoggerFactory.getLogger(LogController.class);

Lombok 实现的原理:在代码编译期(.java 文件)时,将 lombok 的注解转换成相应的代码,之后再编译成字节码文件(.class),再交由 JVM 来处理。


 

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接