第2章:Spring Boot 脚手架搭建:快速配置,轻松上手

1,398 阅读5分钟

在上一篇文章【Spring Boot:让Java开发变得更简单、更快捷】中,我们详细介绍了Spring Boot的历史、发展历程及其显著优势。Spring Boot通过简化开发流程和加快开发速度,使得Java开发变得更加简单高效。今天,我们将逐步介绍如何使用 Spring Initializr 快速生成并配置 Spring Boot 项目的完整流程,带领大家深入探索这一革命性的框架。

任务要求

使用IDEA开发工具和Spring官方提供了非常方便的工具Spring Initializr来帮助我们创建Spring Boot应用。

  1. 基于IDEA开发工具,搭建一个Maven项目,坐标groupId(com.cbitedu)、artifactId(study-springboot),其他默认
  2. 引入工程依赖:Springboot最新版本和MySQL驱动包和log4j日志依赖包、单元测试框架Junit
  3. 认识Springboot工程各目录结构及用途
  4. 创建package命名为com.cbitedu.springboot.web并创建HelloController类
  5. 完成HelloController的单元测试

任务收获

  1. 如何快速构建Springboot的Maven工程
  2. 如何引入第三方常用依赖:例如日志、MySQL数据库驱动、Thymeleaf、Web等
  3. 学会生成单元测试相关框架代码
  4. 熟悉Springboot工程目录结构

任务准备

环境要求

  1. JDK1.8+
  2. MySQL8.0.27+
  3. Maven 3.6.1+
  4. IDEA/VSCode

工程目录要求

任务实施

模块源代码地址:study-springboot-chapter00

任务实施步骤如下:

第1步:访问Spring Initializr:https://start.spring.io/

更改成阿里仓库:start.aliyun.com

或备注说明:如果网络访问正常也可以直接通过IDEA新建项目来完成框架性代码

如上图所示,几个选项说明:

  • 1. 构建方式选择:此处我们选择 Maven Project 即可,表示生成的项目使用 Maven 构建。当然我们也可以发现,Spring Boot 项目亦可采用 Gradle 构建,目前 Spring Boot 主流的构建方式还是 Maven;
    2. 编程语言选择:此处选择 Java 即可;
    3. Spring Boot 版本选择: 2.x 版本与 1.x 版本还是有一些区别的,咱们学习肯定是选择 2.x 新版本。此处虽然选择了 2.6.7 版本;
    4. 所属机构设置:Group 表示项目所属的机构,就是开发项目的公司或组织。因为公司可能会重名,所以习惯上采用倒置的域名作为 Group 的值。例如com.cbitedu
    5. 项目标识设置:Artifact 是项目标识,用来区分项目。此处我们命名为 springboot,注意项目标识习惯性地采用小写英文单词,单词间加横杠的形式。比如 Spring Boot 官方提供的很多依赖,都是 spring-boot-starter-xxx 的形式;
    6. 项目名称设置:Name 是项目名称,保持与 Artifact 一致即可;
    7. 默认包名设置:Package name 是默认包名,保持默认即可;
    8. 打包方式选择:此处选择将项目打包为 Jar 文件;
    9. 添加项目依赖:此处可以选择或者我们直接在 pom.xml 中添加。注意 pom.xml 就是 Maven 的配置文件,可以指定我们项目需要引入的依赖;
    10. 生成项目:点击 Generate 按钮,即可按我们设置的信息生成 Spring Boot 项目了。
  1. Dependencies:选择要加入的Spring Boot组件;本文将实现一个Http接口,所以可以选择Web组件,只需要输入Web,页面会自动联想显示匹配的可选组件
  2. 第2步:点击”Generate Project“按钮生成项目;此时浏览器会下载一个与上面Artifact名称一样的压缩包。
  3. 第3步:解压项目包,并用编译器以Maven项目导入,以IntelliJ IDEA为例:
  4.  
  5.  
  6. 菜单中选择:File –> New –> Project from Existing Sources… 
  7. 选择解压后的项目文件夹,点击OK
  8. 点击:Import project from external model,并选择Maven,点击Next到底为止。

    编写一个HTTP接口

  • 创建package命名为com.cbitedu.web(根据实际情况修改)

  • 创建HelloController类,内容如下:

    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String index() {
            return "Hello World";
        }
    
    }
    
  • 启动主程序

编写单元测试用例

修改pom.xml文件引入Junit4依赖

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

打开的src/test/下的测试入口StudySpringbootApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体如下:

package com.cbitedu.springboot;

import com.cbitedu.springboot.web.HelloController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;


@RunWith(SpringRunner.class)
@SpringBootTest
public class StudySpringbootApplicationTests {

    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }

}
  • 使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。

    至此已完成目标,通过Maven构建了一个空白Spring Boot项目,再通过引入web模块实现了一个简单的请求处理。 使用VScode创建Springboot项目 (学生独立完成

方法二: 使用Intellij Idea创建Spring boot项目

方法三: 使用VScode创建Springboot项目 (学生独立完成

示例代码仓库: gitee.com/ossbar/stud…

小结

Spring Boot 的项目结构约定,Spring Boot 默认采用 Maven 的目录结构,其中

  • src.main.java 存放源代码文件
  • src.main.resource 存放资源文件
  • src.test.java 测试代码
  • src.test.resource 测试资源文件
  • target 编译后的 class 文件和 jar 文件

通过本文的学习,我们已经掌握了如何使用 Spring Initializr 快速生成一个基本的 Spring Boot 项目,并且初步了解了项目的基本结构和简单的 HTTP 接口实现。接下来,我们将进一步探讨 Spring Boot 中配置文件的使用,这是理解和掌握 Spring Boot 应用的关键之一。