一篇文章带你掌握主流办公框架——SpringBoot

在之前的文章中我们已经学习了SSM的全部内容以及相关整合

SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架——SpringBoot,却是用来简化Spring开发的框架

SpringBoot是由Pivowtal团队提供的全新框架,其设计目的就是用来简化Spring应用的初始搭建以及开发过程,用来简化开发工具的工具,你是否已经满怀期待~

温馨提醒:在学习前请学习SSM内容以及Maven的高阶内容(依赖传递)等内容

SpringBoot简介

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

SpringBoot概述

SpringBoot是针对Spring的繁琐过程进行优化而产生的框架

Spring程序缺点:

  • 配置繁琐
  • 依赖设置繁琐
  • SpringBoot程序优点:

  • 自动配置
  • 起步依赖(简化依赖配置)
  • 辅助功能(内置服务器等)
  • SpringBoot项目开发

    我们通过一个简单的SpringBoot案例和SSM案例的比较来展现SpringBoot的优势

    SSM框架构造

    首先我们回忆一下SSM框架的基本构造图:

    我们来总结一些SSM框架必备的一些文档:

    1. pom.xml配置文档
    2. ServletConfig配置Java类
    3. SpringMvcConfig配置Java类
    4. Collector服务层Java文档

    SpringBoot框架构造

    相对而言,我们的SpringBoot将SSM的框架内容隐藏起来,达到简化框架的作用

    我们下面来介绍创建一个SpringBoot框架的具体步骤:

    1. IDEA创建新项目,选择SpringBoot框架,JDK选择1.8版本(Default默认在 页下载,需要联 )

    1. 选择Maven,Java,jar等相关选项,注意选择Java8(目前SpringBoot只支持Java8的版本)

    1. 选择Web中的SpringWeb,确保右侧存在Spring Web选项(上方可选择SpringBoot版本)

    1. 创建项目即可

    1. 删除无关项目,只保留src和pom.xml即可

    1. 我们仅需书写一个Collector相关类即可
    package com.itheima.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/books")public class BookController {    @GetMapping("/{id}")    public String getById(@PathVariable Integer id){        System.out.println("id ==> "+id);        return "hello , spring boot!";    }}
    1. 点击启动Application.java文件即可(由系统自动创建)
    package com.itheima;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

    以上至此,我们的SpringBoot项目就开发完毕了

    除此之外,我们的SpringBoot的核心内容实际上存在于pom.xml中,我们会在下述内容中进行介绍

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.5.0</version>    </parent>    <groupId>com.itheima</groupId>    <artifactId>springboot_01_quickstart</artifactId>    <version>0.0.1-SNAPSHOT</version>    <properties>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

    我们会发现需要我们书写代码的部分仅仅只有Collector这一部分,相比于SSM框架简化了并非一点点

    SSM框架与SpringBoot框架比较

    我们将SSM框架与SpringBoot框架进行简单的对比:

    类/配置文件

    Spring

    SpringBoot

    pom文件中的坐标

    手工添加

    勾选添加

    web3.0配置类

    手工添加

    Spring/SpringMvc配置类

    手工添加

    控制器

    手工添加

    手工添加

    我们可以明显比较出两者的显著差距!

    注意:基于IDEA开发的SpringBoot框架需要联 到SpringBoot官 加载程序框架结构

    非IDEA进行SpringBoot开发

    我们在实际工作中,可能使用的开发工具并非只有IDEA

    那么IDEA中存在有SpringBoot的开发架构,其他不包含SpringBoot开发架构选项的软件就无法开发了吗?

    我们可以选择到官 进行jar包下载直接导入开发即可:

    1. 打开官 (官 地址:Spring Boot)

    1. 拉至页面底部,找到快速开发标志,点击进入创建界面

    1. 勾选相对应图标,点击创建即可

    1. 创建后会自动下载jar包,直接导入所用软件即可

    SpringBoot快速启动

    我们在实际开发中,常常会做到前后端分离开发

    那么我们的SpringBoot中所使用的服务器或开发软件等是否还需要交付给前端呢

    SpringBoot为我们提供了一种全新的服务器开启方法,我们只需要将SpringBoot打包后交付给前端,前端就可直接进行开启

    1. 项目打包

    1. 打包后在当前页面采用cmd命令行输入以下指令即可直接开启服务器(注意需要在该jar包的文件夹目录下)
    java -jar SpringBoot文件包名.jar(可tab键补全)

    注意点:

    我们需要将所需的数据库信息交付给前端,因为SpringBoot只负责项目的开启,与数据库无关

    该方法是由一种pom.xml中的插件支持的,请确保存在该插件(SpringBoot自动创建)

    <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

    SpringBoot起步依赖

    在简单介绍SpringBoot的项目开发之后,你是否有疑惑为什么SpringBoot能够省略如此多的信息来直接开发

    其实这一切都是源于SpringBoot的依赖的直接创建,我们称之为起步依赖:

  • parent起步依赖继承
  • starter起步依赖继承
  • 我们给出部分pom.xml配置文件内部进行分析:

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <!----ctrl+左键 可以查看源码>    <!--Maven的继承机制,继承了spring-boot-starter-parent配置文件,再点开查看父类spring-boot-dependencies-->    <!--spring-boot-dependencies里包含了大量的properties,dependencyManagement,build可供选择使用-->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.5.0</version>    </parent>    <groupId>com.itheima</groupId>    <artifactId>springboot_01_quickstart</artifactId>    <version>0.0.1-SNAPSHOT</version>    <!--固定使用1.8JDK-->    <properties>        <java.version>1.8</java.version>    </properties>    <!--起步依赖,查看源码可以查看到关于SpringMvc的相关依赖,包括SpringMVC和Tomcat-->    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>    <!--起步依赖,查看源码可以查看到test的相关依赖-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>    <!--打包插件,直接运行服务器-->    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

    总而言之,SpringBoot创建时自带的一系列起步依赖帮助我们简化了大量SSM的繁琐操作

    我们再来详细介绍几个词语:

    Starter:

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

  • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本 (依赖管理,并非依赖),以达到减少冲突的目的
  • 实际开发:

  • 使用任意坐标时,仅书写GAV中的G和A,不需要书写V
  • 如若发生坐标错误,再指定Version(小心版本冲突)
  • SpringBoot程序启动

    SpringBoot程序启动方法就是开启Application.java文件即可

    package com.itheima;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

    我们给出两个注意点:

  • SpringBoot在创建项目时,采用jar的打包方式
  • SpringBoot的引导类是项目的入口,运行main方法就可以启动项目
  • SpringBoot切换服务器

    我们最后给出一个Maven使用技巧来切换服务器

    SpringBoot中默认使用Tomcat服务器并安装了对应插件,

    那么我们如果想切换服务器,只需要排除掉Tomcat插件,并添加新的插件即可

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/
    
                                                            

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年9月3日
    下一篇 2022年9月3日

    相关推荐