• 【Spring Boot】



    Spring Boot概念

    • SpringBoot的产生是为了简化Spring程序开发的。
    • SpringBoot优点:
      (1)快速集成框架,SpringBoot提供了启动添加依赖的功能,用于秒级集成各种框架。
      (2)内置运行容器,无需配置Tomcat等web容器,直接运行和部署程序。
      (3)快速部署项目,无需外部容器即可启动并运行项目。
      (4)完全可以抛弃繁琐的xml,使用注解和配置的方式进行开发。
      (5)支持更多的监控的指标,可以更好的了解项目的运行情况。

    Spring Boot项目创建

    通过idea创建Spring Boot

    (一)社区版需要安装Spring Assistant插件
    (二)创建项目
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    (三)输出hello world

    @Controller
    public class UserController {
        @ResponseBody //返回一个非静态页面的数据
        @RequestMapping("/sayhi") //设置路由地址sayHi
       public String sayHi(){
           return "hello world";
       }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述

    在这里插入图片描述
    (1)需要将对象托管到springBoot的对象,必须要放在SpringBoot启动类的根路径或子路径中,否则不能被框架识别。
    (2)SpringBoot配置比较少,但是SpringBoot的设计思想是:约定大于配置。

    SpringBoot配置文件

    配置文件作用

    整个项目中所有重要的数据都是在配置文件中配置的:
    (1)数据库的连接信息
    (2)项目的启动端口
    (3)第三方系统的调用秘钥等信息
    (4)用于发现和定位问题的普通日志和异常日志等

    配置文件的分类

    • 配置文件的分类:

    (1)系统的配置文件,比如连接字符串,日志的相关设置,系统定义好的。
    (2)用户自定义的。

    配置文件的格式

    • Spring Boot配置文件主要分为两种格式:
      (1).properties
      (2).yml
      规则:
      (1)一个项目中可以存在两种配置文件,但是不建议一个项目中出现两种配置文件。
      (2)

    如果properties文件没有提示信息,那么就需要安装spring Tools插件

    properties配置文件

    properties配置文件是最早期的配置文件格式,也是创建Spring Boot项目默认的配置文件。

    • properties配置文件的基本语法:key=value
    server.port=8080
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
    characterEncoding=utf8
    spring.datasource.name=root
    spring.datasource.password=11
    
    • 1
    • 2
    • 3
    • 4
    • 5

    关于properties乱码的问题处理:
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 读取配置文件:
      使用@Value注解来实现读取配置文件中的内容。
    public class UserController {
        @Value("${server.port}")
        private String port;
    
    
    • 1
    • 2
    • 3
    • 4

    yml配置文件

    yml最大的优势是可以跨语言。

    • yml基本语法:key: value
    • yml特点:
      (1)写法简单,可读性高
      (2)支持更多的数据类型
      (3)跨语言使用:java,golang,python
    1. properties和yml连接数据库的配置对比:
      在这里插入图片描述
      在这里插入图片描述
    1. yml单双引号问题:
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      总结:yml中如果使用了双引号就会按照原语义执行,如果不加单,双引号,或者加了单引号,那么默认会将字符串中的特殊字符进行转义
    • 配置和读取对象
      使用注解@ConfigurationProperties来读取
    # 对象写法1
    student:
      id: 1
      name: zhangsan
      age: 20
    # 对象写法2
    student2: {id: 2,name: lisi,age: 20}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    @Data
    @ConfigurationProperties(prefix = "student") //读取配置文件中的对象
    @Component
    public class student {
        private int id;
        private String name;
        private int age;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • yml集合的读和写
    # 集合写法
    dbtypes: {name: [mysql,sqlserver,db2]}
    
    • 1
    • 2
    @Component
    @Data
    @ConfigurationProperties("dbtypes")//读取配置文件中集合
    public class ReadList {
      private List<String> name;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    SpringBoot日志文件

    日志作用

    日志除了发现和定位问题之外,还有的功能:
    (1)记录用户登录日志,方便分析用户是正常登录还是恶意破解用户。
    (2)记录系统的操作日志,方便数据恢复和定位操作人。
    (3)记录程序的执行时间,方便为以后优化程序提供数据支持。

    自定义日志打印

    自定义打印日志的实现步骤:
    1,在一个类中先获取到打印日志对象
    在这里插入图片描述

    2,使用日志对象提供的方法实现日志的打印

    这里是引用
    在这里插入图片描述

    @Controller
    @ResponseBody
    public class UserController {
    
        // 1.得到日志对象
        private final static Logger log= LoggerFactory.getLogger(UserController.class);//设置当前类的类型
        @RequestMapping("/sayhi")
        public void sayHi(){
         // 2.使用日志对象提供的打印方法进行日志打印
            log.trace("我是trace");
            log.debug("我是debug");
            log.info("我是info");
            log.warn("我是warn");
            log.error("我是error");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    日志级别

    • 日志级别分为:
      (1)trace:少许的日志(级别最低)。
      (2)debug:调试日志。
      (3)info:普通信息日志。
      (4)warn:警告日志。
      (5)error:错误日志。
      (6)fatal:致命的日志(系统输出的日志,不能自定义打印)
    • 日志级别顺序:
      在这里插入图片描述
    • 设置日志级别:
    # 设置全局的日志级别
    logging.level.root=warn
    #设置局部文件夹的日志级别
    logging.level.com.example.demo.controller=trace
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注:局部日志级别优先级高于全局的日志级别

    日志的持久化

    日志的持久化就是将日志呢永久的保存到磁盘的某个位置。
    1,在配置文件中设置日志的保存路径,当设置了保存路径之后,那么日志就会自动的进行持久化。

    # 正确设置日志路径的方式1
    # 设置日志保存的目录
    logging.file.path=E:/javase/
    # 正确设置日志路径的方式2
    logging.file.path=E:\\javase\\
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2,在配置文件中设置日志保存的名称,日志就自动进行持久化

    # 设置日志的保存名称
    logging.file.name=E:\\javase\\spring-boot.log
    
    • 1
    • 2

    更简单的实现自定义日志的打印-lombok

    1,准备工作:添加lombok到当前项目

    步骤:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2,使用@Slf4j 获得日志对象log
    3,使用log对象自定义打印对象

    @Controller
    @ResponseBody
    @Slf4j //替代了之前需要通过LoggerFactory.getLogger操作
    public class UserService {
        @RequestMapping("/sayhi1")
       public void sayHi1(){
           log.trace("我是trace");
           log.debug("我是debug");
           log.info("我是info");
           log.warn("我是warn");
           log.error("我是error");
       }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    新技术前沿-2023-基于Stable Difussion体验AI绘画
    摄影构图:简单易用的摄影构图方法(一)
    002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化
    java毕业生设计阳光社区新冠瘦苗接种系统计算机源码+系统+mysql+调试部署+lw
    使用Apache搭建网站
    RT-Thread STM32F407 五步完成OLED移植
    C# 将图片字符化(转为ASCII字符)
    Rainbond的 Gateway API 插件制作实践
    微服务保护Sentinel(二)-- 热点参数限流、隔离降级
    用ChatGPT,快速设计一个真实的账号系统
  • 原文地址:https://blog.csdn.net/weixin_48185786/article/details/126061204