最全面的SpringBoot教程(一)——SpringBoot概述
作者:mmseoamin日期:2024-03-17

前言

最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第1张

本文为 【SpringBoot教程】SpringBoot概述 相关知识,下边将对SpringBoot简介(包括:什么是SpringBoot,SpringBoot的特点,SpringBoot的功能,SpringBoot官网),SpringBoot快速入门(开发环境,创建SpringBoot项目,启动项目并访问),SpringBoot起步依赖原理分析,SpringBoot启动器等进行详尽介绍~

📌博主主页:小新要变强 的主页

👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~

👉Java微服务开源项目可参考:企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)


目录

SpringBoot概述

  • 前言
  • 目录
  • 一、SpringBoot简介
    • 1️⃣什么是SpringBoot
    • 2️⃣SpringBoot的特点
    • 3️⃣SpringBoot的功能
    • 4️⃣SpringBoot官网
    • 二、SpringBoot快速入门
      • 1️⃣开发环境
      • 2️⃣创建SpringBoot项目
      • 3️⃣启动项目并访问
      • 三、SpringBoot起步依赖原理分析
      • 四、SpringBoot启动器
      • 后记

        最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第2张

        一、SpringBoot简介

        1️⃣什么是SpringBoot

        SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率。

        SpringBoot不是新的技术,而是新的框架,是基于spring来搭建起来的。

        特性:约定大于配置!

        2️⃣SpringBoot的特点

        优点:

        • 开发效率快,内置有配置好的版本依赖
        • 基于spring
        • 轻松上手

          缺点:

          • 配置繁琐。搭建ssm项目,需要配置大量xml: application.xml spring-mybatis.xml spring-mvc.xml,大量的bean。
          • 依赖繁琐。pom.xml要写大量依赖:pom.xml spring-core spring-bean spring-mvc spring-mybatis java-connector
          • 版本冲突。spring-core 4.0与 spring-mvc 5.0

            3️⃣SpringBoot的功能

            🍀(1)自动配置

            Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。

            🍀(2)起步依赖

            起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。 依赖太多 版本冲突。

            简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

            🍀(3)辅助功能

            提供了一些大型项目中常见的非功能性特性,如嵌入式服务器(tomcat)、安全、指标,健康检测、外部配置等。

            注意: Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。

            4️⃣SpringBoot官网

            SpringBoot官网: https://spring.io/

            最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第3张

            二、SpringBoot快速入门

            1️⃣开发环境

            本文示例的开发环境:

            • java 8
            • Maven-3.6.1
            • SpringBoot 2.6.11

              SpringBoot2.6.11官方文档: https://docs.spring.io/spring-boot/docs/2.6.11/reference/htmlsingle/

              2️⃣创建SpringBoot项目

              创建springboot项目有两种方式:

              • 在https://start.spring.io/上创建后,下载完成,通过IDEA打开即可。
              • 在IDEA中直接创建。

                🍀(1)页面创建

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第4张

                🍀(2)IDEA创建

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第5张

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第6张

                3️⃣启动项目并访问

                🍀(1)创建一个HelloController.java

                @RestController
                public class HelloController {
                    @GetMapping("/")
                    public String hello(){
                        return "Hello springboot";
                    }
                }
                

                🍀(2)启动项目

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第7张

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第8张

                访问地址:http://localhost:8080/

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第9张

                这样一个SpringBoot项目就创建完成了。

                🍀(3)自定义banner图

                启动时的banner图可以自己定义:

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第10张

                在根目录下添加banner.txt或者添加静态资源图片即可。

                重新启动项目,即可在控制台看到效果。

                最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第11张

                可以在这里找自己喜欢的图案:https://www.bootschool.net/ascii-art

                三、SpringBoot起步依赖原理分析

                • 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
                • 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
                • 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。

                  四、SpringBoot启动器

                  Springboot包含许多启动项目并快速运行所需的依赖项,并且具有一组受支持的被管理的传递性依赖项,所有的正式starter都遵循类似的命名模式spring-boot-starter-*。

                  starter启动器是一组方便的依赖项描述符,可以在pom中引入其依赖,免去了自己需要引用很多依赖类,并且SpringBoot会自动进行类的自动配置。例如,如果要使用SpringMVC开发web应用,可以在pom文件中包含spring-boot-starter-web依赖项,如下:

                  
                      org.springframework.boot
                      spring-boot-starter-web
                  
                  

                  只添加spring-boot-starter-web就可以进行web开发了,并且不用声明版本号。

                  启动器包含许多依赖项,包括版本号,可以添加这些依赖项使项目快速启动并运行。

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第12张

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第13张

                  官方启动器命名规则:spring-boot-starter-*,其中*是特定类型的应用程序。例如,spring-boot-starter-web。

                  第三方启动器命名规则: 以项目名称开头*-boot-starter。例如,MyBatis-Plus。他的命名是mybatis-plus-boot-starter

                  🍀(1)Spring Boot提供的启动器(starter)

                  Spring Boot 应用程序启动器官方文档:

                  https://docs.spring.io/spring-boot/docs/2.6.11/reference/htmlsingle/#using.build-systems.starters

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第14张

                  🍀(2)自定义启动器

                  (1)创建一个Spring boot项目

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第15张

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第16张

                  (2)导入pom依赖

                          
                              com.baomidou
                              mybatis-plus-boot-starter
                              3.2.0
                          
                  

                  (3)编写配置类

                  新建一个配置类:

                  package com.aliencat.springboot.starter.config;
                  import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
                  import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
                  import org.springframework.context.annotation.Bean;
                  import org.springframework.context.annotation.Configuration;
                  import org.springframework.transaction.annotation.EnableTransactionManagement;
                  /**
                   * mybatis plus分页插件配置
                   * @author wj
                   */
                  @ConditionalOnClass(value = {PaginationInterceptor.class})
                  @EnableTransactionManagement
                  @Configuration
                  public class MybatisPlusConfig {
                      @Bean
                      public PaginationInterceptor paginationInterceptor(){
                          return new PaginationInterceptor();
                      }
                  }
                  

                  (4)在resources/META-INF目录下新建spring.factories文件

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第17张

                  spring.factories:

                  # Auto Configure
                  org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.aliencat.springboot.starter.config.MybatisPlusConfig
                  

                  (5)mvn install到本地仓库

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第18张

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第19张

                  (6)使用自定义starter

                  构建成功后,我们就可以再其他springboot项目的pom中引入自定义starter:

                          
                              com.aliencat.springboot.starter
                              mystarter
                              0.0.1-SNAPSHOT
                          
                  

                  后记

                  最全面的SpringBoot教程(一)——SpringBoot概述,在这里插入图片描述,第20张

                  👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

                  👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~