一.SpringBoot简介

1.SpringBoot是什么

        Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。                                                       

                                                                                                                          ----百度百科  

         通俗来说,SpringBoot是一种用来快速搭建和开发Spring应用的框架,是整合Spring技术栈/全家桶的一站式脚手架,本质是框架的框架。SpringBoot框架中有两个非常重要的策略:开箱即用和约定大于配置。

(1)开箱即用:是指在开发过程中,通过在MAVEN项目的pom文件中添加相关场景的依赖启动器,即可直接进行相关场景的代码开发,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。

(2)约定大于配置:由开发者在结构中添加信息的软件设计范式/格式。这一特点虽降低了部分灵活性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

2.SpringBoot的优缺点

2.1 SpringBoot优点

(1)极大简化了开发流程,提高了开发效率(简单高效)

(2)抛弃了冗杂的XML配置文件,简化配置整合流程

(3)内置服务器,提供更加轻量级的微服务开发

2.2 SpringBoot缺点

(1)版本帝,迭代更新快,需要时刻关注

(2)内部原理复杂,封装太深,不易理解

二.SpringBoot快速开发

需求:浏览器发送/hello请求,响应 hello,Spring Boot2字符串

1.Maven项目创建

(1)创建Maven工程项目boot-01

解释一下IDEA项目创建中groupid、artifactid的含义如下(图源于网络,侵删):

springboot2 有几个版本 springboot springboot2_html

(2)在pom.xml文件中导入父依赖spring-boot-starter-parent

<!--导入父依赖,此时该项目就被改造成了一个Spring Boot项目-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.3</version>
</parent>

       父依赖不仅包含构建SpringBoot项目所必需的基本配置,还提供了依赖管理和版本仲裁的功能。只有继承父依赖,此时项目才真正成为一个SpringBoot项目。其中,<version>标签表示了所使用SpringBoot的版本号。

(3)在pom.xml文件中导入开发Web应用的场景启动器

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
</dependencies>

注意:场景启动器starter是集成了相关模块开发所涉及的所有依赖坐标的集合,使用时不用声明版本号,由父依赖自动仲裁。

(4)声明主程序类MainApplication

/**
 * 声明springboot主程序应用,这是项目启动的入口
 */
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        //启动springboot微服务
        SpringApplication.run(MainApplication.class,args);
    }
}

(5)书写业务代码

package com.atguigu.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 编写controller
 **/
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello springboot2!";
    }
}

注意:业务类必须与主程序类放在同一目录层级下,该类才能被识别和注册到Spring容器里!项目结构示例如下:

com
  +- example
    +- myproject
      +- MainApplication.java
      |
      +- domain
      |  +- Customer.java
      |  +- CustomerRepository.java
      |
      +- service
      |  +- CustomerService.java
      |
      +- controller
      |  +- CustomerController.java
      |

(6)启动和测试

springboot2 有几个版本 springboot springboot2_html_02

springboot2 有几个版本 springboot springboot2_spring_03

(7)项目配置文件

可以在resources资源文件夹下新建application.properties配置文件来对各组件属性进行配置

#注释:配置服务器端口(默认为8080)
server.port=8888

(8)项目打包测试

pom.xml配置文件内添加如下打包插件,可以将springBoot项目直接打包为jar,并可以通过java -jar命令直接运行。

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

 打包结果(package):

springboot2 有几个版本 springboot springboot2_html_04

注意:打包的时候若出现报错 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0。原因可能是maven版本与springboot版本不兼容,可以通过降低springboot版本添加如下插件解决:

<build>
   <plugins>
       <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
       <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
   </plugins>
</build>

2.Spring Initailizr快速创建

(1)创建项目

Creat New Project => Spring Initializr => 点击next

springboot2 有几个版本 springboot springboot2_html_05

注意:这里idea默认使用https://start.spring.io官网提供的在线模板,所以需要保证网络畅通。

当然也可以选择下面的Custom从指定的链接加载模板。

(2)依次填写项目信息

springboot2 有几个版本 springboot springboot2_maven_06

 (3)项目详细配置

springboot2 有几个版本 springboot springboot2_html_07

 (4)最后一步(项目名称和路径配置)

springboot2 有几个版本 springboot springboot2_spring_08

 (5)项目创建完成

注意:项目创建完成后,可以删掉阴影选中的文件(无用文件),简化目录结构。

springboot2 有几个版本 springboot springboot2_html_09

查看目录结构,项目开发所需要的依赖启动器、主程序入口、全局配置文件、包结构等基础框架都被快速搭建好了,我们只需专注于业务开发即可。

springboot2 有几个版本 springboot springboot2_spring_10