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.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
</parent>

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

<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>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.22</version>
    </dependency>
</dependencies>

④ 制作引导类Application

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

⑤测试

@RestController
@RequestMapping("/books")
public class BookController {

    @GetMapping
    public String getById() {
        System.out.println("SpringBoot is running...4");
        return "SpringBoot is running...4";
    }
}

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);
    }
}
  • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目,未启动web服务器
  • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

小结:

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

1.6.4、内嵌tomcat

  • 辅助功能

在这里插入图片描述

  • 使用maven依赖管理变更起步依赖项
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <!--web起步依赖环境中,排除Tomcat起步依赖-->
   <exclusions>
      <exclusion>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
   </exclusions>
</dependency>

<!--添加jetty起步依赖,版本由SpringBoot的starter控制-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
  • JettyTomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

内置服务器

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

小结:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值