二、SpringBoot快速入门、创建Maven工程

2.1 代码实现

2.1.1 创建Maven工程

使用idea工具创建一个maven工程,该工程为普通的java工程即可

2.1.2 添加SpringBoot的起步依赖

SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

 org.springframework.boot spring-boot-starter-parent 2.4.3

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

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

2.1.3 编写SpringBoot引导类

要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

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

2.1.4 编写Controller

在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController

package com.baijie.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class QuickStartController {
    
    @RequestMapping("/test")
    @ResponseBody
    public String quick(){
        return "welcome to study springBoot 框架!";
    }
    
}

2.1.5 测试

执行SpringBoot起步类的主方法,并不需要把项目部署到tomcat中了,如图:

 控制台打印日志如下:

通过日志发现,Tomcat started on port(s): 8080 (http) with context path ''

tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空

打开浏览器访问url地址为:http://localhost:8080/test

 

大家可以发现,使用springboot创建一个web项目,是非常简单的!大大的提高了开发效率呀!

2.1.6 注意事项

springboot启动类文件 即Application文件不能直接放在main/java文件夹下,必需要新建一个包,而后把它放进去。否则会报错哦!

2.2 快速入门解析

2.2.2 SpringBoot代码解析

  • @SpringBootApplication:标注SpringBoot的启动类,该注解具备多种功能(后面详细剖析)

  • SpringApplication.run(MySpringBootApplication.class) 代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象

    2.2.3 SpringBoot工程热部署

    我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。实现热部署有三种方式,本课程讲devtools实现热部署方式!

    步骤1:添加热部署依赖:
     org.springframework.boot spring-boot-devtools

    【备注】devtools的原理:

    深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

    步骤2:IDEA中设置自动编译

    因为Intellij IEDA默认情况下不会自动编译,需要对IDEA进行自动编译的设置,如下:

    然后 Shift+Ctrl+Alt+/,选择Registry

    步骤3:测试结果

    启动项目之后,修改一些数据,然后重新刷新页面,即可查看更新之后的数据。不用重新启动服务了!

    2.2.4 使用idea快速创建SpringBoot项目

    前缀:为了避免创建过程受网络影响,项目加载太过于缓慢,我们先对idea进行配置:

    配置1:修改下载速度的宽带限制

    配置2:指定archetype-catalog.xml来源

    在idea软件中,提供可以直接通过spring官网快速创建一个springboot的。如下图:

    比如,老师这里把项目名称改为:fast_springboot_project

    提供实现不同功能的多种启动依赖,比如我们需要web功能,则可以直接选择Web -> spring Web依赖。

    启动类也给我们自动创建好了:

    可以使用快速入门的方式创建Controller进行访问,此处不再赘述

    2.2.4.1 注意事项

    【温馨提示1】可能jdk的编译版本需要更改为1.8的哦!每台电脑不一样!

    【温馨提示2】

    SpringBoot项目启动后 迅速 执行结束,控制台打印: No active profile set, falling back to default profiles: default,并执行结束:Process finished with exit code 0.

    解决方案1:改为默认使用的compile范围

    解决方案2:直接删掉此坐标。因为父类已提供Tomcat依赖!