【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 版本等消息,

在这里插入图片描述
pom.xml

<?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">&lt;<span class="hljs-name">properties</span>&gt;</span>
	<span class="hljs-tag">&lt;<span class="hljs-name">java.version</span>&gt;</span>1.8<span class="hljs-tag">&lt;/<span class="hljs-name">java.version</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">properties</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">dependencies</span>&gt;</span>
	<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-starter<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
	<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>

	<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-starter-test<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">scope</span>&gt;</span>test<span class="hljs-tag">&lt;/<span class="hljs-name">scope</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">exclusions</span>&gt;</span>
			<span class="hljs-tag">&lt;<span class="hljs-name">exclusion</span>&gt;</span>
				<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.junit.vintage<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
				<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>junit-vintage-engine<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
			<span class="hljs-tag">&lt;/<span class="hljs-name">exclusion</span>&gt;</span>
		<span class="hljs-tag">&lt;/<span class="hljs-name">exclusions</span>&gt;</span>
	<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependencies</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">build</span>&gt;</span>
	<span class="hljs-tag">&lt;<span class="hljs-name">plugins</span>&gt;</span>
		<span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
			<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
			<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-maven-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
		<span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
	<span class="hljs-tag">&lt;/<span class="hljs-name">plugins</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">build</span>&gt;</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