手把手教你搭一个SpringBoot项目

简介: 《Spring》系列

Spring 官方提供了 Spring Initializr 的方式来创建 Spring Boot 项目。网址

https://start.spring.io/open in new window

打开后的界面如下

image.png

可以将 Spring Initializr 看作是 Spring Boot 项目的初始化向导,它可以帮助开发人员在一分钟之内创建一个 Spring Boot 骨架,非常的傻瓜式。

来解释一下 Spring Initializr 初始化界面中的关键选项。

1)Project:项目的构建方式,可以选择 Mavenopen in new window(安装方式可以戳链接) 和 Gradle(构建脚本基于 Groovy 或者 Kotlin 等语言来编写,而不是传统的 XML)。编程喵默认采用的 Maven。

2)Language:项目的开发语言,可以选择 Java、Kotlin(JetBrains开发的可以在 JVM 上运行的编程语言)、Groovy(可以作为 Java 平台的脚本语言来使用)。默认 Java 即可。

3)Spring Boot:项目使用的 Spring Boot 版本。默认版本即可,比较稳定。

4)Project Metada:项目的基础设置,包括包名、打包方式、JDK 版本等。

  • Group:项目所属组织的标识符,比如说 top.codingmore;
  • Artifact:项目的标识符,比如说 coding-more;
  • Name:默认保持和 Artifact 一致即可;
  • Description: 项目的描述信息,比如说《编程喵实战项目(Spring Boot+Vue 前后端分离项目)》;
  • Package name:项目包名,根据Group和Artifact自动生成即可。
  • Packaging: 项目打包方式,可以选择 Jar 和 War(SSM 时代,JavaWeb 项目通常会打成 War 包,放在 Tomcat 下),Spring Boot 时代默认 Jar 包即可,因为 Spring Boot 可以内置 Tomcat、Jetty、Undertow 等服务容器了。
  • Java:项目选用的 JDK 版本,选择 11 或者 8 就行(编程喵采用的是最最最最稳定的 Java8)。

5)Dependencies:项目所需要的依赖和 starter。如果不选择的话,默认只有核心模块 spring-boot-starter 和测试模块 spring-boot-starter-test。

好,接下来我们使用 Spring Initializr 初始化一个 Web 项目,Project 选择 Maven,Spring Boot 选择 2.6.1,Java 选择 JDK 8,Dependencies 选择「Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.」

image.png

这预示着我们会采用 SpringMVC 并且使用 Tomcat 作为默认服务器来开发一个 Web 项目。

然后点击底部的「generate」按钮,就会生成一个 Spring Boot 初始化项目的压缩包。

image.png

如果使用的是 Intellij IDEA 旗舰版,可以直接通过 Intellij IDEA 新建 Spring Boot 项目

image.png

Spring Boot 项目结构分析

解开压缩包,并导入到 Intellij IDEA 中,可以看到 Spring Boot 项目的目录结构。

image.png

可以使用 tree -CfL 3 命令以树状图列出目录的内容

image.png

  • src/main/java 为项目的开发目录,业务代码在这里写。
  • src/main/resources 为配置文件目录,静态文件、模板文件和配置文件都放在这里。
  • 子目录 static 用于存放静态资源文件,比如说 JS、CSS 图片等。
  • 子目录 templates 用于存放模板文件,比如说 thymeleaf 和 freemarker 文件。
  • src/test/java 为测试类文件目录。
  • pom.xml 用来管理项目的依赖和构建。


如何启动/部署 Spring Boot 项目

第一次启动,我个人习惯在 main 类中右键,在弹出的右键菜单这种选择「run ... main()」启动

image.png

经过 2.5s 左右的 build 后,项目启动成功了,可以在日志中看到 Web 项目是以 Tomcat 为容器的,默认端口号为 8080,根路径为空

image.png

这要比传统的 Web 项目省事省心省力,不需要打成 war 包,不需要把 war 包放到 Tomcat 的 webapp 目录下再启动。

那如果想把项目打成 jar 包放到服务器上,以 java -jar xxx.jar 形式运行的话,该怎么做呢?

打开 Terminal 终端, 执行命令 mvn clean package,等待打包结果

image.png

我们的项目在初始化的时候选择的是 Maven 构建方式,所以 pom.xml 文件中会引入 spring-boot-maven-plugin 插件

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

因此我们就可以利用 Maven 命令来完成项目打包,打包完成后,进入 target 目录下,就可以看到打包好的 jar 包了

image.png

利用终端工具 Tabbyopen in new window,将 jar 包上传到服务器

2.png

执行 java -jar tobebetterjavaer-0.0.1-SNAPSHOT.jar 命令。

image.png

what??????竟然没有安装 JDK。好吧,为了带白票阿里云服务器的小伙伴一起学习 Linux,我下了血本自己买了一台零添加的服务器。

PS:需要在 centos 环境下安装 JDK 的小伙伴可以看这篇。

https://segmentfault.com/a/1190000015389941open in new window

安装好 JDK 后,再次执行命令就可以看到 Spring Boot 项目可以正常在服务器上跑起来了

image.png

第一个Web项目

项目既然启动成功了,我们在浏览器里访问 8080 端口测试下吧

image.png

咦,竟然 Whitelabel 了,这个 404 页面是 Spring Boot 默认的错误页面,表示我们的请求在 Web 服务中不存在。

那该怎么办呢?

我们来增加一个 Controller 文件,用来处理 Web 请求,内容如下。

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "hello, springboot";
    }
}

这段代码的业务逻辑非常简单,用户发送 hello 请求,服务器端响应一个“hello, springboot”回去

1.pngOK,现在可以访问到了。也就表明我们的第一个 Spring Boot 项目开发完成了。

相关文章
|
NoSQL Java 数据库连接
Idea创建SpringBoot多模块项目
我们可以定义一个维度,以此来划分模块,例如上述商城、可以划分成商品、库存和订单模块。也可以目录结构分层,`Controller`层,只不过没人这样做。这样就引申出了下一个问题`拆分策略`。
914 0
Idea创建SpringBoot多模块项目
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
483 0
传统maven项目和现在spring boot项目的区别
|
XML Java 数据库连接
创建springboot项目的基本流程——以宠物类别为例
创建springboot项目的基本流程——以宠物类别为例
152 0
创建springboot项目的基本流程——以宠物类别为例
|
存储 机器学习/深度学习 IDE
SpringBoot 项目与被开发快速迁移|学习笔记
快速学习 SpringBoot 项目与被开发快速迁移
SpringBoot 项目与被开发快速迁移|学习笔记
|
Java Spring
自定义SpringBoot项目的启动Banner
``Banner``是``SpringBoot``框架一个特色的部分,其设计的目的无非就是一个框架的标识,其中包含了版本号、框架名称等内容,既然``SpringBoot``为我们提供了这个模块,它肯定也是可以更换的这也是``Spring``开源框架的设计理念。
|
前端开发 Java 应用服务中间件
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
255 0
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
|
Java Spring
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
276 0
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
|
消息中间件 NoSQL Java
47K Star 的SpringBoot+MyBatis+docker电商项目,附超详细的文档
该项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统:首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统:商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 该项目使用现阶段主流技术实现。涵盖了SpringBoot 2.3.0、MyBatis 3.4.6、Elasticsearch 7.6.2、RabbitMQ 3.7.15、Redis 5.0、MongoDB 4.2.5、
|
安全 Java 关系型数据库
Mall电商实战项目全面升级!支持最新版SpringBoot,干掉循环依赖
技术栈升级 mall项目采用现阶主流技术实现,这些主流技术基本都升级了目前最新稳定版,具体升级内容大家可以参考下表。 技术版本说明
|
Java 应用服务中间件 Linux
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
323 0
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
下一篇
无影云桌面