• SpringBoot2基础篇(一)—— 入门案例


    01、入门案例

    SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

    1.1、基础篇课程学习前置知识

    • Java基础语法
    • Spring与SpringMVC
      • 知道Spring是用来管理bean,能够基于Restful实现页面请求交互功能
    • Mybatis与Mybatis-Plus
      • 基于Mybatis和MybatisPlus能够开发出包含基础CRUD功能的标准Dao模块
    • 数据库MySQL
      • 能够读懂基础CRUD功能的SQL语句
    • 服务器
      • 知道服务器与web工程的关系,熟悉web服务器的基础配置
    • maven
      • 知道maven的依赖关系,知道什么是依赖范围,依赖传递,排除依赖,可选依赖,继承
    • web技术(含vue,ElementUI)
      • 知道vue如何发送ajax请求,如何获取响应数据,如何进行数据模型双向绑定

    1.2、SpringBoot入门程序开发

    1.2.1、基于idea联网创建项目

    步骤:

    ①:创建新模块,选择Spring Initializr,并配置模块相关基础信息

    在这里插入图片描述

    ②:选择当前模块需要使用的技术集

    在这里插入图片描述

    总结:

    1. 开发SpringBoot程序可以根据向导进行联网快速制作
    2. SpringBoot程序需要基于JDK8进行制作
    3. SpringBoot程序中需要使用何种功能通过勾选选择技术
    4. 运行SpringBoot程序通过运行Application程序入口进行

    1.2.2、基于SpringBoot官网创建项目

    ①打开SpringBoot官网,选择Quickstart Your Project

    在这里插入图片描述

    在这里插入图片描述

    ②创建工程,并保存项目

    ③解压项目,通过IDE导入项目

    1.2.3、基于阿里云创建项目

    • 基于阿里云创建项目,地址:https://start.aliyun.com

    • 步骤:

    ①选择start来源为自定义URL

    ②输入阿里云start地址

    ③创建项目

    在这里插入图片描述

    在这里插入图片描述

    注意:

    阿里云提供的坐标版本较低,如果需要使用高版本,进入工程后手工切换SpringBoot版本

    在这里插入图片描述

    阿里云提供的工程模板与Spring官网提供的工程模板略有不同

    1.2.4、手工制作创建项目

    步骤:

    ① 创建普通Maven工程

    在这里插入图片描述

    ② 继承spring-boot-starter-parent

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.5.4version>
    parent>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ③ 添加依赖spring-boot-starter-web

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            <version>5.3.22version>
        dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ④ 制作引导类Application

    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ⑤测试

    @RestController
    @RequestMapping("/books")
    public class BookController {
    
        @GetMapping
        public String getById() {
            System.out.println("SpringBoot is running...4");
            return "SpringBoot is running...4";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.3、Spring程序和SpringBoot程序对比

    类/配置文件SpringSpringBoot
    pom文件中的坐标手工制作勾选添加
    web3.0配置类手工制作
    Spring/SpringMVC配置类手工制作
    控制器手工制作手工制作

    注意:

    基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构

    1.4、Idea中隐藏指定文件或指定类型文件

    • Setting → File Types → Ignored Files and Folders
    • 输入要隐藏的文件名,支持*号通配符
    • 回车确认添加

    在这里插入图片描述

    1.5、SpringBoot简介

    SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

    Spring程序缺点

    • 依赖设置繁琐
    • 配置繁琐

    SpringBoot程序优点

    • 起步依赖(简化依赖配置)
    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器,……)

    1.6、入门案例解析

    1.6.1、parent

    1. 开发SpringBoot程序要继承spring-boot-starter-parent
    2. spring-boot-starter-parent中定义了若干个依赖管理
    3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
    4. 继承parent的形式也可以采用引入依赖的形式实现效果

    在这里插入图片描述

    1.6.2、starter

    spring-boot-starter-web.pom

    在这里插入图片描述

    • starter

      • SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
    • parent

      • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
      • spring-boot-starter-parent各版本间存在着诸多坐标版本不同
    • 实际开发

      • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V
      • 如发生坐标错误,再指定Version(要小心版本冲突)

    注意:

    • 开发SpringBoot程序需要导入坐标时通常导入对应的starter
    • 每个不同的starter根据功能不同,通常包含多个依赖坐标
    • 使用starter可以实现快速配置的效果,达到简化配置的目的

    1.6.3、引导类

    • 启动方式
    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目,未启动web服务器
    • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

    小结:

    1. SpringBoot工程提供引导类用来启动程序
    2. SpringBoot工程启动后创建并初始化Spring容器

    1.6.4、内嵌tomcat

    • 辅助功能

    在这里插入图片描述

    • 使用maven依赖管理变更起步依赖项
    <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-webartifactId>
       
       <exclusions>
          <exclusion>
             <groupId>org.springframework.bootgroupId>
             <artifactId>spring-boot-starter-tomcatartifactId>
          exclusion>
       exclusions>
    dependency>
    
    
    <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-jettyartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • JettyTomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

    内置服务器

    • tomcat(默认):apache出品,分子多,应用面广,负载了若干较重的组件
    • jetty:更轻量级,负载性能远不及tomcat
    • undertow:undertow,负载性能勉强跑赢tomcat

    小结:

    1. 内嵌Tomcat服务器是SpringBoot辅助功能之一
    2. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
    3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器

  • 相关阅读:
    Swift Combine — Publisher、Operator、Subscriber概念介绍
    LLMs:OpenAI官方重磅更新——新增GPT-3.5Turbo调和API更新功能
    Unity Shader—05 Unity中的纹理采样
    获得淘宝商品评论 API 返回值说明
    Windows下Rosetta Commons ,PyRosetta软件安装方法,API在线及离线文档,Zeal工具安装方法
    Tungsten Fabric SDN — 与 Kubernetes 的资源映射
    远程小组软件开发过程(3):人
    全场景数实融合聚焦北京——2023(第六届)行业信息技术应用创新大会隆重召开
    【总结】kubernates 插件工具总结
    python封装SDK
  • 原文地址:https://blog.csdn.net/kuaixiao0217/article/details/126122762