SpringBoot(项目创建使用+配置文件+日志文件)

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

目录

1. Spring Boot 项目创建

2. 写一个 Hello World 并运行

3. 配置文件的作用及格式

4. properties 配置文件的基本语法 

5. 读取配置文件

6. yml 配置文件说明

7. properties 和 yml 的区别

8. SpringBoot 日志文件

8.1 日志的作用

8.2 自定义日志打印

8.3 日志的级别

8.4 日志持久化

8.5 更简单的实现日志打印lombok


Spring的出现是为了简化 Java 程序开发,而 SpringBoot 的出现是为了简化 Spring 程序开发.

SpringBoot 就是 Spring脚手架

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

1. Spring Boot 项目创建

我这里是专业版,不用下载插件直接可以创建

第一次打开 SpringBoot 项目需要加载很久, 因为当前 SpringBoot 框架并没有在自己的本地仓库

springboot 写文件,JavaEE,spring boot,java,spring

(2) 选取 SpringBoot 的版本, 和需要使用的工具包  

springboot 写文件,JavaEE,spring boot,java,spring

 (3) Finish后,可以看到创建成功了,直接运行一下,如果出现这个 JVM运行时间就说明创建成功了

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring (4) 删除掉无用的目录 

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring

2. 写一个 Hello World 并运行

(1) 创建一个类,注意和 Application 平级,写一个方法,返回 Hello World

  1. ​​​​​先加一个 @Controller,    也就是运行项目后,会先找到这个类
  2. 然后再加 @RequestMapping,   这个的作用就是前面找到 @Controller后,有了这个@RequestMapping就会锁定我写的方法 sayHi()   ,注意里面字母都小写
  3. 加@ResponseBody的作用是,我想返回给页面一个非静态的数据(也就是给响应Body中放一个字符串)

springboot 写文件,JavaEE,spring boot,java,spring

 然后直接运行,页面输入 127.0.0.1:8080/sayhi 可以看到访问成功了

springboot 写文件,JavaEE,spring boot,java,spring


3. 配置文件的作用及格式

(1) 在整个项目中所有重要的数据都是在配置文件中配置的, 比如:

  • 项目的启动端口
  • 数据库的连接信息 (包含用户名和密码的设置)
  • 第三方系统的调用秘钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

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

(2) 配置文件的分类:

  • 系统的配置文件, 比如: 连接字符串, 日志的相关设置
  • 用户自定义的

(3) 配置文件的格式

  •  . properties
  •  . yml

一个项目中可以存在两种配置文件 (properties 和 yml) , 但是不建议这样搞

当一个项目的某个配置, 出现在两种格式的配置文件中时, 那么配置项会以 properties 为主

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring

 如果此时修改了配置文件的名字, 重新运行程序, 就访问不到了

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring


4. properties 配置文件的基本语法 

 properties 是以键值的形式配置的, key=value  中间是以 "=" 连接的 

springboot 写文件,JavaEE,spring boot,java,spring

关于 properties 中文乱码的问题处理

因为 properties 是早期的配置文件, 不支持中文, 所以比如当重启 idea 后, 中文就会乱码

可以设置一下

(1) 配置当前项目中文乱码的问题

springboot 写文件,JavaEE,spring boot,java,spring

 (2) 配置新项目中文乱码的问题

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring


5. 读取配置文件

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

@Value 注解使用 "${}" 的格式读取

springboot 写文件,JavaEE,spring boot,java,spring

 springboot 写文件,JavaEE,spring boot,java,spring

 可以看到如果要读取多个配置文件中的信息, properties 配置文件中会有很多的容易信息, 比如

 springboot 写文件,JavaEE,spring boot,java,spring

 要想解决这个问题, 就可以使用 yml 配置文件的格式化了


6. yml 配置文件说明

yml 意思是"另一种标记语言", yml 是一个可读性高, 易于理解,用来表达数据序列化的格式. 特别适合用来表达或编辑数据结构, 各种配置文件等. yml 最大优势是可以跨语言, 比如 golang java python 都可以使用 yml 作为配置文件

(1) yml 基本语法

yml 是树形结构的配置文件, 基础语法是 "key: value",  注意 中间使用冒号和空格连接的,空格不要省略

springboot 写文件,JavaEE,spring boot,java,spring

(2) yml 配置不同的数据类型

# 字符串
string.value: hello

# 布尔值
boolean.value: true

# 整数
int.value: 10

# 浮点数
float.value: 3.14159

# Null, ~ 表示 null
null.value: ~

(3) yml 单双引号的问题

springboot 写文件,JavaEE,spring boot,java,spring

(4) 配置对象

在 yml 中配置对象, 这个时候需要使用注解 @ConfigurationProperties 来读取

springboot 写文件,JavaEE,spring boot,java,spring

 springboot 写文件,JavaEE,spring boot,java,spring

(5)配置集合

配置文件也可以配置 list 集合

springboot 写文件,JavaEE,spring boot,java,spring


7. properties 和 yml 的区别

  • properties 是以 key=value 的形式配置的键值类型的配置文件, 而 yml 使用的是类似于 json 格式的配置方式, key: value 中间用冒号和空格连接
  • properties 是早期并且也是默认的配置文件格式, 这种方式存在一定的冗余数据, yml 可以很好的解决这种冗余问题
  • yml 通用性更好,支持更多语言, 并且支持更多的数据类型

8. SpringBoot 日志文件

8.1 日志的作用

日志是程序的重要组成部分,当程序报错是就可以通过,日志来发现和定位问题,并且日志的作用还有

  • 记录用户登录日志,方便分析用户是正常登录还是恶意破解用户
  • 记录系统的操作日志, 方便数据恢复和定位操作人
  • 记录程序的执行时间, 方便为以后优化程序提供数据支持

Spring Boot 项目在启动的时候就有默认的日志输出

如果这个默认的日志输出,就可以发现问题

  • Spring Boot 内置了日志框架
  • 默认情况下, 输出的日志并非是开发者定义和打印的, 那么开发者如何在程序中自定义打印日志
  • 日志默认是打印在控制台上的, 但这样是不能被保存的, 那么怎样把日志持久化保存下来

8.2 自定义日志打印

自定义打印日志的实现步骤:

  1. 在程序中得到日志对象
  2. 使用日志对象的相关语法输出要打印的内容

springboot 写文件,JavaEE,spring boot,java,spring

springboot 写文件,JavaEE,spring boot,java,spring

 可以看到这里日志打印只出现了三个, 这是因为默认的日志级别是 info 的, 这里只会输出级别大于等于 info 的

springboot 写文件,JavaEE,spring boot,java,spring

package com.example.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @Description:
 * @Date 2022/12/27 14:04
 */
@Controller
@ResponseBody
public class UserController2 {

    // 1.先得到日志对象 (设置当前类的类型)
    private final static Logger log = LoggerFactory.getLogger(UserController2.class);

    @RequestMapping("/sayhii")
    public void sayHii() {
        // 2.使用日志对象提供的方法进行打印
        log.trace("trace 最小");
        log.debug("debug 调试");
        log.info("info 普通");
        log.warn("warn 警告");
        log.error("error 错误");
    }
}

8.3 日志的级别

日志级别可以帮助筛选出重要的信息

  1. trace: 微量, 少许, 级别最低
  2. debug: 调试日志
  3. info: 普通信息日志
  4. warn: 警告日志
  5. error: 错误日志
  6. fatal: 致命的日志, 系统输出的, 不能自定义打印

当存在局部日志级别和全局日志级别设置时, 那么当访问局部日志时, 使用的是局部日志级别, 

局部日志级别优先级 > 全局的日志级别 

# 设置全局的日志级别 (properties)
logging.level.root=info
# 设置局部文件夹的日志级别
logging.level.com.example.demo.controller=trace
# 全局日志级别的配置  yml
logging:
  level: 
    root: error

8.4 日志持久化

日志持久化: 将日志永久的保存到磁盘的某个位置, 有两种方式

  1. 在配置文件中设置日志的保存路径, 当设置了保存路径之后, 那么日志就会自动的进行持久化
  2. 在配置文件中设置日志保存的名称, 日志会自动进行持久化

(1) 设置日志的保存路径

# 设置日志的保存目录 (properties)
logging.file.path=D:/IDEA/

# 如果想使用 \ 就要注意转义的问题,这里用\\
logging.file.path=D:\\IDEA\\
# 设置日志保存的目录  (yml)
logging:
  file:
    path: D:/IDEA/

可以看到日志保存到了这个目录下的位置 

springboot 写文件,JavaEE,spring boot,java,spring

 (2) 设置日志的保存名称

# 设置日志的保存名称 (properties)
logging.file.name=D:/IDEA/spring-boot.log

8.5 更简单的实现日志打印lombok

添加 lombok 到当前项目

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

(1) 使用 @Slf4j 得到日志对象 log

(2) 使用 log 对象自定义打印日志文章来源地址https://www.toymoban.com/news/detail-816277.html

package com.example.demo.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//@RestController = @Controller + @ResponseBody
@RestController
@Slf4j   // 代替了之前需要通过 LoggerFactory.getLogger 操作
public class UserService {

    @RequestMapping("/sayhi2")
    public void sayHi2() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
    }
}

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

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

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

相关文章

  • 芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 第一章 芋道 Spring Boot 快速入门 芋道 SpringBoot是一款国产的SpringCloud微服务框架,包括Outh2.0、微服务网关、微服务注册中

    2024年04月23日
    浏览(33)
  • SpringBoot项目从0到1配置logback日志打印

    大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 以下是正文! 我们在写后端项目的时候,日志打印是必需的。支持SpringBoot项目的日志框架一般有log4j、logback,

    2024年02月11日
    浏览(55)
  • 【Spring框架全系列】SpringBoot配置日志文件

    🍧🍧哈喽,大家好,我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作,本篇博客我们将学习一个新的知识点,SpringBoot日志文件。🖥🖥 📲目录 一、日志是什么,有什么作用? 二、如何看到日志文件? 三、如何自定义日志打印 1、在程序中得到⽇志对象 2、使

    2024年02月03日
    浏览(65)
  • Docker创建Springboot项目镜像文件

    本文章展示的是以Windows10系统为例进行操作 安装地址:desktop安装地址(外网,需要一些手段进行访问) 官网地址点击送达(外网) 4.1.首先进行maven 打包,将会在target中生成一个Jar包. 尝试在target目录下进入cmd,使用命令 4.2.在target目录下创建文件Dockerfile 在Dockerfile中写入信息如下 4.3

    2024年02月14日
    浏览(38)
  • SpringBoot3中的属性绑定注解和YMAL配置文件、日志

    SpringBoot摒弃XML配置方式,改为 全注解驱动 1. 组件注册 @Configuration 、 @SpringBootConfiguration @Bean 、 @Scope @Controller 、 @Service 、 @Repository 、 @Component @Import @ComponentScan 步骤: 1、@Configuration 编写一个配置类 2、在配置类中,自定义方法给容器中注册组件。配合@Bean 3、或使用@Import

    2024年02月11日
    浏览(53)
  • SpringBoot(一)使用itelliJ社区版创建SpringBoot项目

        工欲善其事,必先利其器。要开发SpringBoot项目,首先就是选择一款合适的开发工具。目前市面上有很多优秀的开发工具,例如 IntelliJ IDEA、Visual Studio Code 和 Eclipse 等,那么我们该如何选择呢?最好的选择是使用IntelliJ IDEA的Ultimate版本,但Ultimate版本试用期只有30天,30天后

    2024年02月14日
    浏览(35)
  • SpringBoot项目的创建和使用

    目录 一,SpringBoot 1,什么是SpringBoot 2,SpringBoot的优点 二,SpringBoot项目的创建和使用 1,项目的创建 创建方式 使用Idea创建(统一使用Idea社区版2021.x版本)  使用网页版创建(使用Spring官网)  2,SpringBoot目录说明 1,目录说明  2,删除4个无用文件  3,SpringBoot项目的简单使用

    2023年04月25日
    浏览(28)
  • 使用maven创建springboot项目

    命令行或者idea、eclipse快捷创建也可以 访问loalhost:8080,因为没有其他接口所以报错 新建HelloController.java 重新启动项目访问

    2024年02月10日
    浏览(46)
  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(73)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包