SpringBoot 个人博客项目搭建笔记 section 1
实验知识点
- 如何快速构建一个 Spring Boot 项目
- Spring Boot 项目目录结构介绍
- Spring Boot 项目启动
实验环境
- JDK 1.8 或者更高版本
- Spring Boot 2.1.0-RELEASE
- Maven 3+
1. 使用 Spring Initializr 构建
Spring 官方提供了 Spring Initializr 来进行 Spring Boot 的快速构建,这是一个在线生成 Spring Boot 基础项目的工具,我们可以将其理解为 Spring Boot 的“创建向导”,接下来我们使用这个在线向导来快速的创建一个 Spring Boot 骨架工程。
- 首先,打开在浏览器中输入 Spring Initializr 的网站地址:https://start.spring.io
- 之后可以看到页面上需要我们填写和选择项目的基础信息,依次填写即可
- 最后点击“Generate Project”按钮即可获取到一个 Spring Boot 基础项目的代码压缩包
如图所示,Spring Boot 版本我们选择的是随便选了一个2.2.11 ,当然也可以选择其他稳定版本,视项目要求而定,“ dependencies ” 表示添加到项目所依赖的 Spring Boot 组件,根据项目要求来选择,需要哪些场景就直接选择相应模块即可,与 SpringBoot Initializr 构建方式类似,也可以多选,本次学习选择了 Web 模块。
2. mvn 命令行创建 Spring Boot 项目
在搞mvn之前,零基础的朋友可以看一下笔者之前的文章ubuntu设置mvn环境变量
打开命令行并将目录切换到对应的文件夹中,之后运行以下命令:
mvn archetype:generate -
DinteractiveMode=false -
DgroupId=com.lou.springboot -
DartifactId=springboot-demo -
Dversion=0.0.1-SNAPSHOT
2.1 mvn目录问题
这里出现了一个小插曲,即mvn编译不成功,显示报错:
Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.2.0:generate (default-cli) on project springboot-demo: Unable to add module to the current project as it is not of packaging type 'pom'
原因是使用mvn路径中包含pom.xml,因此将路径cd成src下,build success。
项目路径多出一个./springboot-demo。
3. 目录结构解读
这里用顺手的IDE打开项目,刚才生成的./springboot-demo。
打开项目之后可以看到 Spring Boot 项目的目录结构如下:
如上图所示,Spring Boot 的目录结构主要由以下部分组成:
lou-springboot
├── src/main/java
├── src/main/resources
├── src/springboot-demo/src
├── src/test/java
└── pom.xml
其中 src/main/java
表示 Java 程序开发目录,这个目录大家应该都比较熟悉,唯一的区别是 Spring Boot 项目中还有一个主程序类。
src/main/resources
表示资源文件目录,与普通的 Spring 项目相比有些区别,如上图所示该目录下有 static
和 templates
两个目录,是 Spring Boot 项目默认的静态资源文件目录和模板文件目录,在 Spring Boot 项目中是没有 webapp 目录的,默认是使用 static
和 templates
两个文件夹。
src/test/java
表示测试类文件夹,与普通的 Spring 项目差别不大。
pom.xml 用于配置项目依赖。
以上即为 Spring Boot 项目的目录结构,与普通的 Spring 项目存在一些差异,不过在平常开发过程中,这个差异的影响并不大,说到差别较大的地方可能是部署和启动方式的差异,日后详细介绍 Spring Boot 项目的启动方式。
4. Sprint Boot 项目启动
4.1 Main() 方法启动
与普通的 Web 项目相比,Spring Boot 启动项目减少了几个中间步骤,不用去配置 Servlet 容器,也不用打包并且发布到 Servlet 容器再去启动,而是直接运行主方法即可启动项目,开发调试都十分方便也节省开发时间。在你的本机上开发项目时,可以直接在 Eclipse 或者 IDEA 中运行 Spring Boot 主程序类即可,比如现在的项目中有 Application 类,可以直接运行它的 run() 方法,项目就能够正常启动了。
4.2 Maven 插件启动
由于 pom.xml 文件中引入了 spring-boot-maven-plugin 插件依赖,也可以直接使用 Maven 命令来启动 Spring Boot 项目,插件配置如下。如果 pom.xml 文件中没有该 Maven 插件,是无法通过这种方式启动 Spring Boot 项目的,这一点需要注意。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
启动过程过程如下图所示,首先点击下方工具栏中的 Terminal 打开命令行窗口,之后在命令行中输入命令 mvn spring-boot:run
并执行该命令即可启动项目,如下图所示,Spring Boot 项目启动成功。
4.3 java -jar 命令启动
项目初始化时我们选择的打包方式为 Jar ,因此项目开发完成进行打包时的结果是一个 Jar 包, Java 运行 Jar 包的命令为 java -jar xxx.jar
,结合以上两个原因我们可以使用这种方式启动 Spring Boot 项目,接下来我们来演示这一过程。
- 首先,点击下方工具栏中的 Terminal 打开命令行窗口
- 之后使用 Maven 命令将项目打包,执行命令为:
mvn clean package -Dmaven.test.skip=true
,等待打包结果即可 - 打包成功后进入 target 目录,
cd target
- 最后就是启动已经生成的 Jar 包,执行命令为
java -jar springboot-demo-0.0.1-SNAPSHOT.jar
这种方式也是 Spring Boot 上线时常用的启动流程,希望不熟悉的朋友都按照以上过程练习几次。
5. 后记
此实验是蓝桥的课程,笔者在写完个人索引页后,闲来无事(想要装逼)搭个博客玩玩。一开始在github上本来打算白嫖一个laravel的,但后来问了几个朋友,虽然php是世界上最好的语言,且笔者在研究生阶段接触的后端语言也是php,但好友推荐了go和java,正好最近在用java玩一些数据结构和算法,因此尝试学习了springboot。
蓝桥课程地址
github(小白并不能实现)白嫖地址