• Spring Boot框架


    目录

    一、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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    配置成功如下:

    可以提供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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    上面将端口号改为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、日志打印

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

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

    将日志保存到本地文件

    # 设置日志文件的目录
    logging:
      file:
        path: D:home
    uoyi
    
    # 设置日志文件的文件名
    logging:
      file:
        name: D:home
    uoyispring-1204.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    怎么才能实现一个链接自动识别安卓.apk苹果.ipa手机和win电脑wac电脑
    23年下半年软考中级软件设计师备考攻略(含报名时间)
    多校联测12 树
    HTML入门
    Java学习笔记(二十)
    Windows10实用的12个快捷组合键
    多中机器学习模型对比可视化
    计算机毕设之基于Python+django+MySQL可视化的学习系统的设计与实现
    XML实体注入漏洞
    windows环境压力测试工具Apache ab安装及使用(apache benchmark)
  • 原文地址:https://blog.csdn.net/m0_67391683/article/details/126040725