前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot项目搭建与启动

Spring Boot项目搭建与启动

作者头像
xiangzhihong
发布2022-11-30 15:46:39
9840
发布2022-11-30 15:46:39
举报
文章被收录于专栏:向治洪向治洪

Spring Boot简介

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

在正式介绍Spring Boot之前,让我们先来看看Spring Boot框架的前身Spring框架。Spring框架就像一个家族,由它衍生出的产品包括Spring Boot、Spring Security、Spring MVC和Spring Cloud等等,不过他们的基础都是Spring的ioc和aop。ioc提供了依赖注入的容器,aop解决了面向横切面的编程;然后在此二者的基础上实现了其他延伸产品的高级功能。其中,比较常见的Spring Boot、Spring Cloud、Spring MVC与Spring的关系如下图所示。

在这里插入图片描述
在这里插入图片描述

其中,Spring MVC是基于 Servlet 的一个 MVC 框架,主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种xml,properties处理起来比较繁琐。于是为了简化开发者的使用,Spring社区创造性地推出了Spring Boot,它遵循约定优于配置,极大降低了Spring使用门槛,但又不失Spring原本灵活强大的功能。

Spring Boot 项目构建

Spring Boot 提供了多种创建项目的方式,例如Spring Initializr和IDE两种方式。

使用Spring Initializr 方式

Spring 官方提供了 Spring Initializr 来进行 Spring Boot 的快速构建,这是一个在线生成 Spring Boot 基础项目的快捷方式,我们可以将其理解为 Spring Boot 的“创建向导”,用来让初学者可以快速的创建和体验Spring Boot 项目。 接下来,我们使用这个在线向导来快速的创建一个 Spring Boot 骨架工程。

  1. 打开在浏览器中输入 Spring Initializr 的网站地址:start.spring.io
  2. 之后可以看到页面上需要我们填写和选择项目的基础信息,依次填写即可。
  3. 最后点击页面底部的“Generate”按钮即可获取到一个 Spring Boot 基础项目的代码压缩包。
在这里插入图片描述
在这里插入图片描述

最后,解压下载的模版项目,使用工具导入这个模版项目即可。

使用IDEA 创建

除了Spring Initializr在线创建方式外,另一种比较常见的创建方式是使用IDE工具的方式,如下图所示。

在这里插入图片描述
在这里插入图片描述

由于 IDEA 编辑器中集成了 Spring Initializr 工具,所以使用 IDEA 创建 Spring Boot 项目比较简单。

  1. 点击新建项目,之后弹出新建项目框
  2. 选择 Spring Initializr 选项,单击 Next 按钮,也会出现上述类似的配置界面
  3. 填写相关内容后,单击 Next 按钮,选择依赖的包再单击 Next 按钮
  4. 接下来是选择 Spring Boot 版本选择以及场景导入,选择需要的版本和场景即可,单击 Next 按钮
  5. 如果确认无误后点击 Finish 按钮即可完成 Spring Boot 项目的创建
在这里插入图片描述
在这里插入图片描述

其中,所需要填入的参数的含义如下:

  • GroupID:项目组织唯一的标识符,实际对应 Java 的包结构,是 main 目录里 Java 的目录结构。
  • ArtifactID:是项目的唯一的标识符,实际对应项目的名称,也就是项目根目录的名称 。
  • Type:项目管理工具,可以选择 Maven 构建或者 Gradle 构建,本项目选用的是常用的 Maven 方式。
  • Language :编程语言,现在支持 Java 、Kotlin 和 Groovy。
  • Packaging:项目的打包方式,有两种选择:Jar 和 War,在 Spring Boot 生成后,如果选用的方式不同,那么导入的打包插件也有区别。 Java Version: 表示 JDK 版本的选择。 Version:项目版本号,IDEA 默认为 0.0.1-SNAPSHOT,也可以自行修改。

然后,我们选择项目所需的依赖即可,如下图所示。

在这里插入图片描述
在这里插入图片描述

创建Spring Boot项目时,我们可以选择项目所需要的依赖版本,目前Spring Boot最稳定的版本是 2.3.4 ,当然也可以选择其他的稳定版本,版本的选择视项目要求而定,左侧 “Dependencies” 表示添加到项目所依赖的 Spring Boot 组件,也是根据项目要求来选择,需要哪些场景就直接选择相应模块即可,与 SpringBoot Initializr 构建方式类似,也可以多选,本次演示选择了 Web 模块。

mvn 命令方式创建

除了前面的两种方式外,还可以使用mvn 命令方式创建Spring Boot项目。打开命令行并将目录切换到对应的文件夹中,之后运行以下命令:

代码语言:javascript
复制
mvn archetype:generate -DinteractiveMode=false -DgroupId=ltd.newbee.mall -DartifactId=newbee-mall -Dversion=0.0.1-SNAPSHOT

在构建成功后可以生成骨架项目,但是由于生成的项目仅仅是骨架项目,因此 pom.xml 文件中需要自己添加依赖,主方法启动类也需要自行添加,因此不是特别推荐。

Spring Boot 项目结构

使用IDEA 导入 创建的Spring Boot 项目,之后一直点击 next 按钮即可,成功打开后Spring Boot 项目的目录结构如下图所示。

在这里插入图片描述
在这里插入图片描述

其中,我们主要关系的几个文件如下:

代码语言:javascript
复制
bili-mall
    ├── src/main/java
    ├── src/main/resources
    ├── src/test/java
    └── pom.xml
  • src/main/java 表示 Java 程序开发目录,这个目录大家应该都比较熟悉,唯一的区别是 Spring Boot 项目中还有一个主程序类 xxApplication.java。
  • src/main/resources 表示配置文件目录,与普通的 Spring 项目相比有些区别,如上图所示该目录下有 static 和 templates 两个目录,这是 Spring Boot 项目默认的静态资源文件目录和模板文件目录,在 Spring Boot 项目中是没有 webapp 目录的,默认是使用 static 和 templates 两个文件夹。
  • src/test/java 表示测试类文件夹,与普通的 Spring 项目差别不大。
  • pom.xml 用于配置项目依赖。

启动Spring Boot项目

IDEA 启动

在 IDEA 编辑器中,有两种方式可以启动 Spring Boot 项目,分别是:

  • 工具栏中的 Run / Debug 按钮
  • 右键运行 Spring Boot 的主程序类
在这里插入图片描述
在这里插入图片描述

由于 IDEA 编辑器对于 Spring Boot 项目的支持非常友好,在项目导入成功后会被自动识别为 Spring Boot 项目并进行相关配置,以上图片中的所呈现的配置效果都是 IDEA 编辑自动配置的,并没有进行任何的人为设置,此时可以点击工具栏中的【 Run / Debug 】按钮来启动项目。并且,在代码编辑栏目中,可以看到 main() 方法的左侧也有一个启动图标,点击这个图标或者直接右键 Run 也可以直接启动项目。

与普通的 Web 项目相比,启动项目减少了几个中间步骤,不用去配置 Servlet 容器,也不用打包并且发布到 Servlet 容器再去启动,而是直接运行主方法即可启动项目,开发调试都十分方便也节省开发时间。

Maven插件启动

由于 pom.xml 文件中引入了 spring-boot-maven-plugin 插件依赖,也可以直接使用 Maven 命令来启动 Spring Boot 项目,spring-boot-maven-plugin 插件的配置如下。

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果 pom.xml 文件中没有该 Maven 插件,是无法通过这种方式启动Spring Boot 项目的,这一点需要注意。然后,在IDEA下方工具栏中的 Terminal 打开命令行窗口,之后在命令行中输入命令 mvn spring-boot:run即可启动项目 。

java -jar 命令行启动

项目初始化时我们选择的打包方式为 Jar ,因此项目开发完成进行打包时的结果是一个 Jar 包, Java 运行 Jar 包的命令为 java -jar xxx.jar ,结合以上两个原因我们可以使用这种方式启动 Spring Boot 项目,接下来我们来演示这一过程。

  • 首先,点击下方工具栏中的 Terminal 打开命令行窗口(或者打开 CMD 窗口并切换到当前的代码目录)
  • 之后使用 Maven 命令将项目打包,执行命令为:mvn clean package -Dmaven.test.skip=true,等待打包结果即可
  • 打包成功后进入 target 目录,cd target
  • 最后就是启动已经生成的 Jar 包,执行命令为java -jar newbee-mall-0.0.1-SNAPSHOT.jar

项目成功启动后,打开浏览器访问 8080 端口,可以看到一个 white label error 页面,这个页面是 Spring Boot 的默认错误页面,由页面内容可以看出报错为 404 ,访问其他地址也都会是这个页面。之所以出现这种问题,是因为 web 服务中并没有任何可访问资源。

在这里插入图片描述
在这里插入图片描述

接口测试

接下来,我们需要自行实现一个 Controller 来测试一下 Spring Boot 如何处理 web 请求。首先,在根目录(启动类的同级目录,不是 src 目录)下新建 controller 包,之后在包里新建一个 Controller 类,代码如下。

代码语言:javascript
复制
package com.bili.mall.bilimall.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @RequestMapping("/api/user")
    public String say(){
        return "Hello,I am SpringBoot!";
    }
}

这段代码大家应该很熟悉,写法与 Spring 项目开发的写法是相同的,这段代码的含义就是处理请求路径为 /info 的 get 请求,之后返回一段字符串,编码完成后重新启动项目并在浏览器中输入地址http://localhost:8080/api/user,可以看到已经没有错误页面,如下图所示!

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot简介
  • Spring Boot 项目构建
    • 使用Spring Initializr 方式
      • 使用IDEA 创建
        • mvn 命令方式创建
        • Spring Boot 项目结构
        • 启动Spring Boot项目
          • IDEA 启动
            • Maven插件启动
              • java -jar 命令行启动
                • 接口测试
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档