在Spring Boot Web服务中使用Hello World
用Spring Boot Web服务实现Hello World
投资
我将使用 Windows 11 上的 Linux 进行云开发。
您可以在这里查看文章列表。
实现
在本地的 Ubuntu 环境中,启动一个以Spring Boot Web服务为基础的JAR应用程序。
启动JAR文件格式的应用
技术话题
什么是Spring Boot?
Spring Boot是一个用于在Java中开发Web应用程序的框架之一,它是基于Spring Framework的一组库的集合。
特点
它易于配置,您只需编写代码即可创建Web应用程序。
它具有自动化的功能,如自动配置和自动检测等。
它能自动解决Spring Framework的依赖关系,开发人员无需花费时间在库管理上。
它支持各种数据源和安全功能等许多库,因此非常灵活,可满足多种用途。
它还提供了一个名为Spring Cloud的扩展,用于将应用程序作为微服务运行。
好处
开发人员可以专注于应用程序的业务逻辑,无需花费时间在繁琐的配置和设置上。
借助Spring Boot的自动化功能,开发人员可以更快地编写代码,并更快地进行构建、测试和部署。
由于其高度灵活和丰富的库,它可以适应各种用途。
通过使用Spring Cloud,它提供了扩展功能,将应用程序作为微服务运行,从而提高了可扩展性和可靠性。
研发环境
- Windows 11 Home 22H2 を使用しています。
> wsl –version
WSL版本:1.0.3.0
内核版本:5.15.79.1
WSLg版本:1.0.47Ubuntu ※ 您可以通过此相关文章确定安装方法
$ lsb_release -a
没有可用的LSB模块。
发行商 ID:Ubuntu
描述:Ubuntu 22.04.1 LTS
发布:22.04
Java JDK ※ 您可以通过此相关文章确定安装方法
$ java -version
openjdk version “11.0.18” 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Maven ※ 您可以通过此相关文章确定安装方法
$ mvn -version
Apache Maven 3.6.3
Maven主页:/usr/share/maven
Java版本:11.0.18,供应商:Ubuntu,运行时:/usr/lib/jvm/java-11-openjdk-amd64
创建Web应用程序的规格
显示”Hello World”的步骤。
创建项目 (Chuangjian xiangmu)
创建项目文件夹。
※我们将 “~/tmp/hello-spring-boot” 作为项目文件夹。
$ mkdir -p ~/tmp/hello-spring-boot
$ cd ~/tmp/hello-spring-boot
创建应用程序类
创建一个应用程序类。
$ mkdir -p src/main/java/com/example/springboot
$ vim src/main/java/com/example/springboot/Application.java
文件的内容 de
package com.example.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
此外,这段代码是启动Spring Boot应用程序所需的最小代码,详细的设置,如应用程序配置和路由等,需要额外添加。
创建一个控制器类
创建一个控制器类。
$ mkdir -p src/main/java/com/example/springboot/controller
$ vim src/main/java/com/example/springboot/controller/HelloController.java
文件的内容 de
package com.example.springboot.controller;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/data")
public Map<String, String> getData() {
Map<String, String> map = Map.of("message", "Hello World!");
return map;
}
}
@RequestMapping注解用于定义URL路径,以便根据HTTP请求到达该端点。在这种情况下,请求路径映射到/api端点。
@Data annotation is used to indicate the method getData annotated with @GetMapping. When an HTTP GET request is sent to /data endpoint, the method will return an object of type Map.
Map object is a data structure that stores key-value pairs. In this case, it associates the key “message” with the string “Hello World!”.
The returned Map object will be serialized in JSON format and embedded in the body of the HTTP response.
When this code is executed, a GET request to /api/data will be received, and it will return a JSON response of “Hello World!”.
创建 pom.xml
创建pom.xml文件。
$ vim pom.xml
文件的内容 de
<?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.7.8</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>hello-spring-boot</artifactId>
<version>1.0</version>
<name>hello-spring-boot</name>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
项目
内容
groupId
定义项目的组ID。
artifactId
定义项目的工件ID。
version
定义项目的版本。
dependencies
定义依赖关系列表。在这个示例中,定义了包括Spring Boot的Web启动器在内的 spring-boot-starter-web。
build
定义项目的构建设置。在这个示例中,指定了在构建时使用Spring Boot的spring-boot-maven-plugin。同时,定义了finalName。这将用于生成的应用程序文件名。
需要注意的是,这个POM中指定了一个父POM,其中包含用于自动管理Spring Boot依赖关系的配置。
项目的架构
我将显示项目文件结构。
$ tree
.
├── pom.xml
└── src
└── main
└── java
└── com
└── example
└── springboot
├── Application.java
└── controller
└── HelloController.java
文件
内容
1
pom.xml
是一个Maven项目的配置文件,用于定义项目的依赖关系和构建设置。
2
Application.java
是Spring Boot应用程序的入口点,会在应用程序启动时执行。主要用于应用程序的配置、组件扫描等操作。
3
HelloController.java
是一个Spring MVC应用程序的控制器,用于接收HTTP请求并返回响应。它提供了与特定URL路径映射的方法,并用于在客户端和服务器之间传递数据。
在构建Spring Boot应用程序时,我们只需要使用这三个文件。通过组合这些文件,我们可以构建一个完整的Spring Boot应用程序。
打开应用程序
打开应用程序。
※ 要停止应用程序,请按下 Ctrl + C。
$ mvn spring-boot:run
使用spring-boot:run命令可以使用Maven构建Spring Boot应用程序,并运行已构建的应用程序。在构建完成后,Spring Boot会启动嵌入的Tomcat服务器,并运行Web应用程序。换句话说,这是用于在本地运行Spring Boot应用程序的命令。
应用程序的操作确认
我會使用 curl 命令從另一個終端確認。
$ curl -v http://localhost:8080/api/data -w '\n'
做出努力
* Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /api/data HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Sat, 04 Mar 2023 12:27:45 GMT
<
* Connection #0 to host localhost left intact
{"message":"Hello World!"}
应用程序的构建
使用Java构建应用程序。
※ 将创建target/app.jar文件。
$ mvn clean package
执行。
$ java -jar target/app.jar
总结
在使用Ubuntu搭建的简单Java开发环境中,我们成功地运行了Spring Boot Web服务。
使用WSL Ubuntu,您可以轻松构建Spring Boot网页开发环境。请务必尝试。我们将继续介绍Java开发环境等内容,请期待。
请推荐内容。
相关文章
让我们与其他的 REST API 框架进行比较吧!