Spring Boot框架

2023-11-20

目录

一、Spring Boot

1、Spring Boot优点

2、创建Spring Boot

3、Spring Boot配置文件

(1)配置文件的作用

(2)properties文件格式

(3)yml文件的格式

(4)properties vs yml

二、Spring Boot日志框架

1、java常见的日志框架

2、日志级别

3、日志打印


一、Spring Boot

Spring Boot也是Spring官方提供的一个顶级项目。便捷的开发Spring框的的项目(提高效率)。基于“约定大于配置”的设计原则。Spring Boot提供了绝大多数的约定(如果没有配置,就基于默认的约定来设置相关项目需要的属性)。

1、Spring Boot优点

  • 快速集成框架:提供了启动添加依赖的功能,用于秒级集成各种框架(自动化配置)。如:添加Spring Boot支持的其它框架(如Spring-boot-driud-starter数据库连接池的框架,可以自动的帮助我们注册其中的Bean对象,完成数据库连接的配置)
  • 内置运行容器,无需配置Tomcat等Web容器,直接运行和部署。
  • 完全抛弃繁琐的XML,使用注解和配置的方式进行开发。(使用传统的Spring进行项目开发,会使用大量的xml文件,及文件内容)
  • 支持更多的监控指标,可以更好地了解项目的运行情况。(这是官方提供的一个专门监控Spring Boot项目的依赖包)。

2、创建Spring Boot

这里描述基于普通的maven项目进行搭建。

(1)创建一个普通的maven项目

(2)修改pom.xml文件,引入依赖

 (3)准备SpringBoot的启动配置文件

 (4)开发SpringBoot启动类

 【代码如下】

package org.exmaple;
//必须在某个包下
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//SpringBoot的启动类注解
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        //基于SpringBoot的方式启动
        SpringApplication.run(Application.class,args);
    }
}

配置成功如下:

 可以提供web静态资源,在resources目录下的public或者static文件夹中,访问时路径为资源路径,不需要添加public等文件夹路径。

 url格式:http://ip:port/应用上下文路径/服务资源路径?queryString

  • 应用上下文路径:Springboot中默认为“/”;
  • 服务资源路径:public和static下的文件,但不包含本身。

3、Spring Boot配置文件

(1)配置文件的作用

整个项目中所有重要的数据都是在配置文件中配置:

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

配置文件在resources目录下,文件名为application,格式为properties/yml。(只能出现一个配置文件)

(2)properties文件格式

以键值对的形式进行配置(每个键值对一行),key和value之间使用“=”连接。键的多层级之间使用“."连接。

 读取配置文件:

使用@Value注解来实现。使用${}格式读取。

@RestController
@RequestMapping("/user")
public class UserController {
    //@Value直接,使用${“配置项键名”},就可以将该键对应的值设置到属性中
    @Value("${server.port}")
    private String port;
    @RequestMapping("/port")
    public String port(){
        return port;
    }
}

 上面将端口号改为8085,此时访问该路径显示端口号为8085.

(3)yml文件的格式

yml是树形结构的配置文件,基础语法“key: value”,key和vlaue之间使用英文冒号加空格的方式组成,空格不可省略。yml文件最大的优势是可以跨语言,不只是java中可以使用,golang、python都可以使用yml作为配置文件。

 yml配置对象(这个时候就不能使用@Value来读取配置中的对象了,需要使用另一个注解@ConfigurationProperties来进行读取):

(4)properties vs yml

  • properties通过键值对的形式配置文件;yml使用类似于json格式的属性方式进行配置,层级之间使用换行缩进的方式配置,key和value之间使用英文冒号加空格的方式配置,空格不能省略。
  • properties为早期并且默认的配置文件的格式,但其配置存在一定的冗余数据,使用yml可以很好的解决数据冗余的问题。
  • yml通用性好,支持更多语言,如果是云服务器开发,可以使用yml配置文件作为1Java和go的共同配置文件。

二、Spring Boot日志框架

日志框架的作用:

  • 设置多种日志级别;
  • 打印时,指定不同的日志级别;
  • 输出到不同的地方:比如控制台、本地文件等。

不同的环境,需要不同的打印信息,如开发环境:需要打印一些调试信息:但生产环境(一般指linux服务器,运行项目,不需要观察控制台,日志一般输出到文件中),就不能打印这些调试信息。

1、java常见的日志框架

  • log4j=>apache提供的日志框架;
  • log4j2=>log4j的升级版本;
  • logback=>springboot默认的内置日志框架
  • slf4j=>日志的桥接框架(如果直接使用耨个日志框架的api,比如logback,那么之后要切换到lig4j,必须改代码,不太方便,,所以产生了slf4j这个桥接框架。基于slf4j的api来打印日志,之后,就可以无缝切换日志框架的具体实现了)。

2、日志级别

级别由低到高:

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

配置日志级别

#root,表示默认的所有的代码中,设置的打印级别
logging.level.root=INFO

#自定义某个包/某个类的打印级别(符合条件的就不在世root的级别)
#org.example.controller表示的这个包/类的打印级别自定义
lohhing.level.org.example.controller=debug

3、日志打印

使用日志对象,调用不同级别的打印方法(添加@Slf4j注解):

 也可以使用字符串格式化的方式进行打印(变量替换占位符):

将日志保存到本地文件

# 设置日志文件的目录
logging:
  file:
    path: D:\home\ruoyi

# 设置日志文件的文件名
logging:
  file:
    name: D:\home\ruoyi\spring-1204.log
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot框架 的相关文章

随机推荐

  • 华为5500v3多路径linux6,CentOS7 DM-Multipath+HUAWEI OceanStor存储多路径配置

    在参看了网上他人的配置 结合RedHat的技术白皮书实现后 自己亲身在CentOS7 HUAWEI OceanStore S2600T的基础上配置了一个DM Multipath存储多路径的实现 其中碰到了一些小问题和不明白的地方 书上感觉也
  • 5. TypeScript 接口

    TypeScript 接口 接口可以在面向对象编程中表示行为的抽象 也可以描述对象的形状 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约 接口中不能含有具体的实现逻辑 1 函数接口参数 没有接口的写法 const fullNa
  • three.js开发全景视频播放器的现实方法

    业余弄弄three js 想用three js实现播放全景视频 研究了一段 搜索很多资料 感觉这一遍很棒 搜藏分享下 原理 将video标签拉伸显示在three js场景的一个球模型上 用相机在中间播放渲染 基础 基于three js官方案
  • IntelliJ IDEA 学习笔记 - 几个窗口布局设置技巧

    原文 https blog csdn net cgl125167016 article details 79000774 utm source copy IntelliJ IDEA 简体中文专题教程 编辑区分屏 IntelliJ IDEA
  • 下载Eclipse IDE

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 下载eclipse 二 安装语言包 一 下载eclipse Eclipse是一个开放源代码的 基于Java的可扩展开发平台 官方网站是https www ecl
  • 为 SQL Server 站点数据库服务器配置 SPN

    如何为 SQL Server 站点数据库服务器配置 SPN 主题上次更新时间 2008 年 1 月 使用 SQL Server 计算机的本地系统帐户运行 SQL Server 服务不是 SQL Server 最佳方案 为了最安全地运行 SQ
  • day 2

    定义一个学生的结构体 包含学生的姓名年龄 成绩 性别 学生的成绩姓名定义为私有权限 定义一个学生类型的结构体变量 设置共有函数用于给学生的成绩和名字进行赋值 include
  • 半导体成新资本洼地,国产化浪潮势不可挡

    配图来自Canva 近日 中芯国际成功登陆科创板 按照中芯国际发行价27 46元 股 发行16 86亿股计算 本次的募资金额是462 87亿元 比此前招股书规划的200亿元高出一倍多 在超额配售选择权行使后 发行总股数扩大至19 38亿股
  • Linux查看与挂载新磁盘

    问题 把CentOS都换成了Ubuntu Server 16 04 LTS 用df h查看磁盘占用情况 确发现之前插入的一块大容量磁盘 dev sdb1消失了 是磁盘坏了 还是没被系统识别 解决 1 用命令fdisk l查看新磁盘是否被系统
  • QSharedMemory在linux下异常崩溃导致的bug

    感谢这位博主 https blog csdn net xinluo7 article details 118226389 在Windows系统下 当程序出现崩溃 虽然没有主动调用QSharedMemory attach 但是系统会自动回收Q
  • Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中

    前面两篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站 如何配置Servlet简单实现表单提交 这篇文章主要讲述配置MySQL实现数据库连接MyEclipse 最后将查询表中的数据显示在JSP网页中 文章主要以图片描述为主
  • Java 多线程编程(入门)

    目录 一 简单介绍 Thread类 1 Thread类中一些常用的方法 2 编写一个简单多线程程序 入门 二 Java中创建多线程的方法 重点面试题 1 继承 Thread 类 2 实现 Runnable 接口 重写 run 3 使用匿名内
  • 00.mipi协议

    mipi差分信号原理 理解mipi协议 MIPI DSI LP mode命令及格式详解 MIPI信号的分析 结合示波器实际测试波形 MIPI 移动行业处理器接口 是Mobile Industry Processor Interface的缩写
  • onlyoffice报 error self signed certificate导致download failed错误处理

    安装nextcloud onlyoffice 打开onlyoffice报错 进入容器看out log报错信息 root nextcloud docker ps a Emulate Docker CLI using podman Create
  • HTTP请求详解

    HTTP概念 HTTP全称是HyperText Transfer Protocal 即超文本传输协议 是应用层协议 当你上网浏览网页的时候 浏览器和web服务器之间就会通过HTTP在Internet上进行数据的发送和接收 HTTP是一个基于
  • PHP 两个二维数组求不同

    public function arrcha arr1 0 id gt 1 name gt name arr1 1 id gt 2 name gt name2 arr1 2 id gt 3 name gt name3 arr1 3 id g
  • JNI入门基础

    环境安装 想要使用jni进行ndk开发 我们首先要安装下面这些工具 否则直接从入门到放弃 下载ndk支持 在Android studio中下载上图中框选的两个工具 版本号自己任意选一个 下载完成之后 Android Studio就拥有了进行
  • 类模板函数特化(专用化)specialization of …… after instantiation

    http stackoverflow com questions 7774188 explicit specialization after instantiation http blog csdn net xcysuccess3 arti
  • [ASP.NET MVC 小牛之路]05 - 使用 Ninject

    在 ASP NET MVC 小牛之路 系列上一篇文章 依赖注入 DI 和Ninject 的末尾提到了在ASP NET MVC中使用Ninject要做的两件事情 续这篇文章之后 本文将用一个实际的示例来演示Ninject在ASP NET MV
  • Spring Boot框架

    目录 一 Spring Boot 1 Spring Boot优点 2 创建Spring Boot 3 Spring Boot配置文件 1 配置文件的作用 2 properties文件格式 3 yml文件的格式 4 properties vs