Fork me on GitHub

SpringBoot系列文章(第一个SpringBoot实践练习项目)

目录

  • 背景
  • 第一部分 开发环境准备
  • 第二部分 使用Maven构建项目
  • 第三部分 项目目录结构
  • 第四部分 编写HelloWorld项目
  • 参考文献及资料

背景

第一次使用Spring Boot构建测试项目,实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解。

第一部分 开发环境准备

  • Maven版本:Maven 3,version 3.3.9

  • Java版本:Java 1.8(Java8)

第二部分 使用Maven构建项目

Spring官网提供Spring Initializr工具生成项目

Group ID是项目组织唯一的标识符,实际对应项目中的package包。

Artifact ID是项目的唯一的标识符,实际对应项目的project name名称,Artifact不可包含大写字母。

然后点击生成项目压缩文件,并下载到本地。

  • 第三步:使用IDE加载项目(使用IntelliJ IDEA)
    1. 菜单中选择File–>New–>Project from Existing Sources...
    2. 选择解压后的项目文件夹,点击OK
    3. 点击Import project from external model并选择Maven,点击Next到底为止。

第三部分 项目目录结构

开发环境是Win7环境,导入后,使用tree /f命令查看项目结构目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# tree /f
│ .gitignore
│ HELP.md
│ mvnw
│ mvnw.cmd
│ pom.xml
├─.idea
│ │ azureSettings.xml
│ │ compiler.xml
│ │ misc.xml
│ │ workspace.xml
│ └─inspectionProfiles
│ Project_Default.xml
├─.mvn
│ └─wrapper
│ maven-wrapper.jar
│ maven-wrapper.properties
│ MavenWrapperDownloader.java
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─example
│ │ └─demo
│ │ DemoApplication.java
│ └─resources
│ application.properties
└─test
└─java
└─com
└─example
└─demo
DemoApplicationTests.java
  • .gitignore文件是git控制文件。
  • mvnw(linux shell)和mvnw.cmd(windows),还有.mvn文件夹(包含Maven Wrapper Java库及其属性文件)。mvnw全名是Maven Wrapper,它的原理是在maven-wrapper.properties文件中记录你要使用的Maven版本,当用户执行mvnw clean 命令时,发现当前用户的Maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令,比如刚才的mvn clean。带有mvnw文件项目,只要有java环境,仅仅通过使用本项目的mvnw脚本就可以完成编译,打包,发布等一系列操作。
  • HELP.mdMaven的帮助文件。
  • pom.xmlProject Object Model 的缩写,即项目对象模型。maven 的配置文件,用以描述项目的各种信息。
  • .idea/文件夹来存放项目的配置信息。其中包括版本控制信息、历史记录等等。

  • src/main/java下的程序入口:DemoApplication.java

  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:DemoApplicationTests.java

第四部分 编写HelloWorld项目

引入Web模块,在pom.xml文件添加下面的依赖包:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

新建controller程序(HelloSpringBootController):

1
2
3
4
5
6
7
8
9
10
11
12
package com.example.demo.controller;

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

@RestController
public class HelloSpringBootController {
@RequestMapping("/")
public String hello(){
return "Hello, SpringBoot!";
}
}

完成后项目的结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─example
│ │ │ └─demo
│ │ │ │ DemoApplication.java
│ │ │ │
│ │ │ └─controller
│ │ │ HelloSpringBootController.java
│ │ │
│ │ └─resources
│ │ application.properties
│ │
│ └─test
│ └─java
│ └─com
└─example
└─demo
DemoApplicationTests.java

最后使用maven编译:

1
2
mvn clean  
mvn package #编译项目

会生成编译结果,在项目根目录生成target文件目录。其中demo-0.0.1-SNAPSHOT.jar为编译后的入口程序。在IDEA中,或者使用java -jar demo-0.0.1-SNAPSHOT.jar命令在win CMD命令窗口中运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Dfile.encoding=GBK -jar C:\Users\rongxiang\Desktop\SpringBoot\demo\target\demo-0.0.1-SNAPSHOT.jar

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.2.RELEASE)

2020-01-12 13:56:37.333 INFO 5060 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication v0.0.1-SNAPSHOT on rongxiang-PC with PID 5060 (C:\Users\rongxiang\Desktop\SpringBoot\demo\target\demo-0.0.1-SNAPSHOT.jar started by rongxiang in C:\Users\rongxiang\Desktop\SpringBoot\demo)
2020-01-12 13:56:37.338 INFO 5060 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2020-01-12 13:56:40.479 INFO 5060 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-01-12 13:56:40.497 INFO 5060 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-01-12 13:56:40.497 INFO 5060 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29]
2020-01-12 13:56:40.598 INFO 5060 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-01-12 13:56:40.598 INFO 5060 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3142 ms
2020-01-12 13:56:40.945 INFO 5060 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-01-12 13:56:41.227 INFO 5060 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-01-12 13:56:41.233 INFO 5060 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 4.773 seconds (JVM running for 5.475)

在本地启了一个web服务(Tomcat started on port(s): 8080 (http)),对外服务端口为8080。

浏览器中输入url地址(http://localhost:8080/),网页显示“Hello, SpringBoot!”,说明服务服务正常。

注意:

如果运行工程,出现这个报错信息:Failed to clean project: Failed to delete

由于之前编译的工程还在运行,无法clean,导致maven生命周期无法继续进行。即由于已启动了另一个tomcat 进程,导致报错,关闭tomcat进程即可。可以在程序控制台中终止该进程即可。

参考文献及资料

1、Spring官网,链接:https://spring.io/

本文标题:SpringBoot系列文章(第一个SpringBoot实践练习项目)

文章作者:rong xiang

发布时间:2020年01月11日 - 13:01

最后更新:2022年10月25日 - 23:10

原始链接:https://zjrongxiang.github.io/posts/2d09b0a/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%