【Spring Boot】创建一个简单的Spring Boot的 Demo
<svg xmlns="http://www.w3.org/2000/svg" style="display: none">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path>
</svg>
<h1><a id="Spring_Boot_0"></a>走进Spring Boot<button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h1>
文章目录#
简单记录 - Spring Boot 2 实战之旅
搭建 Spring Boot 的开发环境,简单地构建项目,以及对项目的简单使用。
环境搭建
JDK 安装配置(http://www.oracle.com/technetwork/java/javase/downloads/index.html)JDK1.8 以上的版本
IntelliJ IDEA 的安装配置(https://www.jetbrains.com/idea/download/)
Maven 的安装配置(https://maven.apache.org/download.cgi)下载一个 3.2 以上的版本
在默认情况下,Maven 下载 JAR 可能会有一些慢,可以修改为国内阿里云等下载地址。
修改 Maven 的配置(settings.xml 配置),
Maven setting.xml
<localRepository>D:\Environments\apache-maven-3.6.2\maven-repo</localRepository>
<!-- 需要改成自己的 Maven 的本地仓库地址 -->
加上阿里镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
新建 Spring Boot 项目
可以 https://start.spring.io/ 创建,IDEA 打开项目。
或者 IntelliJ IDEA 使用 Spring Initializr 创建 Spring Boot 项目
下面主要介绍在 IDEA 中使用 Spring Initializr 创建 Spring Boot 项目
开始创建项目#
创建项目
配置 JDK 版本 和 Initializr Service URL#
单击 Next 按钮进入下一步骤
配置 Project Metadata 信息#
- Group: 项目组织的标识符。
- Artifact: 项目标识符。
- Type: 构建项目的方式,包含 Maven 和 Gradle,这里选择 Maven Project。
- Language:编程语言,这里选择 Java。
- Packaging:启动形式,包含 JAR 和 WAR,这里我们选择 JAR。
- Java Version: Java 版本。
- Version: 项目版本号。
- Name: 项目名称。
- Description:项目描述。
- Package: 实际对应 Java 包的结构,是 main 目录里 Java 的目录结构。
配置 Spring Boot 版本及默认引入组件#
在 Spring Boot 下拉框中选择当前推荐的 Spring Boot 版本,在下方选择要使用的组件,这是一个 demo,简单了解一下项目的结构,直接单击 Next 按钮
配置项目名称和项目位置#
在 Project Name 处配置项目名称,在 Project Location 处配置项目位置。
配置完成后,单击 Finish 按钮即可完成项目的创建。
到这里,已经完成了项目的创建,demo 创建成功。
项目工程介绍
介绍项目的工程目录结构
(1)Java 类文件
(2)资源文件
(3)测试类文件
(4)pom 文件
1、Java 类文件#
src/main/java 下用于放置 Java 类文件,由于这是一个新建的项目,因此目前只有一个 DemoApplication 类,这个类是 Spring Boot 应用的主程序,其中 @SpringBootApplication 注解用来说明这是 Spring Boot 应用的启动类,其中包含自动配置、包扫描等功能,main 方法是启动应用的入口方法,命令行或者插件等任何方式启动,都会调用这个方法。
2、资源文件#
配置文件
src/main/resources 下面主要用于放置 Spring Boot 应用的配置文件,新建项目的时候会默认创建一个 application.properties(默认是一个空文件),也可以将.properties 文件修改为.yml 文件,用缩进结构的键值对来进行配置。同时,配置文件可以进行一些应用需要的配置,如端口号等。
默认空文件 application.properties
resources 还可以放
静态资源
src/main/resources/static 下面主要放置应用的静态资源文件,如 HTML、JavaScript、图片等。
模板文件
src/main/resources/templates 下面主要放置应用的模板文件,比如使用 Thymeleaf 后的 Thymeleaf 模板文件等。
3、测试类文件#
src/test/java 下用于放置 Spring Boot 测试类文件,默认会根据项目名称创建一个测试类,打开该类可以发现 @SpringBootTest 注解用于标明这是一个 Spring Boot 测试类。
4、pom 文件#
项目中还包含一个 pom.xml 文件,这是 Maven 项目用于构建项目的重要组成部分。从 pom 文件的完整代码中可以看到新建的 Spring Boot 项目默认的依赖以及版本号、Java 版本等消息,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<span class="hljs-tag"><<span class="hljs-name">properties</span>></span>
<span class="hljs-tag"><<span class="hljs-name">java.version</span>></span>1.8<span class="hljs-tag"></<span class="hljs-name">java.version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">properties</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependencies</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.springframework.boot<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>spring-boot-starter<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.springframework.boot<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>spring-boot-starter-test<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">scope</span>></span>test<span class="hljs-tag"></<span class="hljs-name">scope</span>></span>
<span class="hljs-tag"><<span class="hljs-name">exclusions</span>></span>
<span class="hljs-tag"><<span class="hljs-name">exclusion</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.junit.vintage<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>junit-vintage-engine<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"></<span class="hljs-name">exclusion</span>></span>
<span class="hljs-tag"></<span class="hljs-name">exclusions</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependencies</span>></span>
<span class="hljs-tag"><<span class="hljs-name">build</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugin</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.springframework.boot<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>spring-boot-maven-plugin<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugin</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"></<span class="hljs-name">build</span>></span>
</project>
运行项目
简单地搭建了一个 Spring Boot 项目。
接下来在 IntelliJ IDEA 上运行项目。
可以直接使用 IntelliJ IDEA 的 Run 或者 Debug 来启动,或者利用 Spring Boot 主程序,直接运行主程序中的 main 函数来运行项目。无论采用哪一种,都可以启动项目。然后查看控制台。
D:\Environments\jdk-11.0.2\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:D:\Java\ideaIU-2019.2.win\lib\idea_rt.jar=10390:D:\Java\ideaIU-2019.2.win\bin -Dfile.encoding=UTF-8 -classpath D:\IdeaProjects\SpringBoot\demo\target\classes;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\boot\spring-boot-starter\2.2.5.RELEASE\spring-boot-starter-2.2.5.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\boot\spring-boot\2.2.5.RELEASE\spring-boot-2.2.5.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-context\5.2.4.RELEASE\spring-context-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-aop\5.2.4.RELEASE\spring-aop-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-beans\5.2.4.RELEASE\spring-beans-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-expression\5.2.4.RELEASE\spring-expression-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\boot\spring-boot-autoconfigure\2.2.5.RELEASE\spring-boot-autoconfigure-2.2.5.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\boot\spring-boot-starter-logging\2.2.5.RELEASE\spring-boot-starter-logging-2.2.5.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\Environments\apache-maven-3.6.2\maven-repo\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\Environments\apache-maven-3.6.2\maven-repo\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-core\5.2.4.RELEASE\spring-core-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\springframework\spring-jcl\5.2.4.RELEASE\spring-jcl-5.2.4.RELEASE.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;D:\Environments\apache-maven-3.6.2\maven-repo\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar com.example.demo.DemoApplication
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
(()__ | '_ | '| | ' / ` | \ \ \
\/ __)| |)| | | | | || (| | ))) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v2.2.5.RELEASE)
2020-03-06 14:54:11.228 INFO 64392 --- [main] com.example.demo.DemoApplication : Starting DemoApplication on DESKTOP-HVI7SH0 with PID 64392 (D:\IdeaProjects\SpringBoot\demo\target\classes started by x1c in D:\IdeaProjects\SpringBoot\demo)
2020-03-06 14:54:11.233 INFO 64392 --- [main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2020-03-06 14:54:12.186 INFO 64392 --- [main] com.example.demo.DemoApplication : Started DemoApplication in 1.475 seconds (JVM running for 3.965)
Process finished with exit code 0
小结
记录
- Spring Boot 开发环境进行了搭建
- 简单介绍了使用 IntelliJ IDEA 创建项目的方法和步骤
- 创建后的项目工程结构介绍
- 如何在 IntelliJ IDEA 中运行 Spring Boot 项目。
参考资料: Spring Boot 2 实战之旅/杨洋著.—北京:清华大学出版社,2019