Spring Boot的Web服务的Hello World!

Spring Boot WEB服务的 Hello World!

意图

使用Spring Boot创建最简化的WEB服务以加深理解。

实现

在本地环境(Ubuntu)上构建和启动一个Spring Boot jar文件形式的应用程序。

技術背景:
技術背景是指一個人或組織在技術方面的知識、經驗和能力。

Spring Boot 是什么?

您可以展开这个并查看。Spring Boot

Spring Boot是用于开发Java Web应用程序的一个框架,它是基于Spring Framework的一组库。
其特点包括:

配置简单,只需编写代码即可创建Web应用程序。
具备自动化的功能,例如应用程序的自动配置和自动检测等。
自动解决Spring Framework的依赖关系,开发者无需花费时间管理库的问题。
支持多种数据源和安全功能等多个库,具有高度的灵活性,适用于多种用途。
还提供了一个名为Spring Cloud的扩展,用于将应用程序作为微服务运行。

其优点包括:

开发者可以专注于应用程序的业务逻辑,无需花费时间在繁琐的配置和设置上。
通过Spring Boot的自动化功能,开发者可以更快地开发代码,更快地进行构建、测试和部署。
由于具有高度的灵活性和丰富的库,可以适应各种用途。
使用Spring Cloud可以提供扩展功能,以将应用程序作为微服务运行,并提高可伸缩性和鲁棒性。

开发环境

    • Windows 11 Home 22H2 を使用しています。

WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

WSL(Microsoft Store应用版)
> 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 JDK的安装和Hello World!
$ java -version
openjdk version “11.0.17” 2022-10-18
OpenJDK Runtime Environment(构建11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64位服务器虚拟机(构建11.0.17+8-post-Ubuntu-1ubuntu222.04,混合模式,共享)

Maven ※ Maven的安装和Hello World!
$ mvn -version
Apache Maven 3.6.3
Maven主目录:/usr/share/maven
Java版本:11.0.17,供应商:Ubuntu,运行时:/usr/lib/jvm/java-11-openjdk-amd64

※ 本文中将主要使用Ubuntu终端进行操作。

显示“Hello World”的步骤

创建项目文件夹

假设 ‘~/tmp/hello-spring-boot’ 是项目文件夹。

$ cd ~
$ 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创建Web应用程序的基本类。
具体来说,定义了一个带有@SpringBootApplication注释的Application类。@SpringBootApplication注释是启用Spring Boot自动配置所必需的。这样,Spring Boot会自动检测类路径上需要的设置并自动配置应用程序。
然后,main方法是启动应用程序所必需的,它调用SpringApplication.run()方法,并将Application类作为参数传递。这个方法启动Spring Boot应用程序并加载所需的设置,然后运行应用程序。
换句话说,这段代码是启动Spring Boot应用程序所需的最少代码,详细的配置和路由等设置需要另外添加。

创建控制器类

$ mkdir -p src/main/java/com/example/springboot/controller
$ vim src/main/java/com/example/springboot/controller/HelloController.java

文件的内容

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;
    }
}
打开说明。
该代码是用来定义Spring Boot应用程序中REST API端点的类。
具体来说,定义了一个带有@RestController注解的HelloController类。@RestController注解表示该类定义了一个RESTful端点。
@RequestMapping注解定义了URL路径以便根据HTTP请求到达该端点。在这种情况下,请求路径被映射为/api。
而且,被注解@GetMapping的getData方法被定义为接收HTTP GET请求并返回一个Map对象。在这种情况下,Map只包含一个键和值,键为”message”,值为”Hello World!”。
因此,当执行此代码时,会发送GET请求到/api/data,并返回一个名为”Hello World!”的JSON响应。

创建pom.xml 文件

$ vim 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.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>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

目录文件结构

$ tree
.
├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── springboot
                        ├── Application.java
                        └── controller
                            └── HelloController.java

运行Spring Boot应用程序

应用程序构建
※ 将创建target/app.jar。

$ mvn clean install

启动应用程序(按Ctrl + C停止)

$ mvn spring-boot:run

请使用网络浏览器进行确认。

http://localhost:8080/api/data

在WEB浏览器中,成功显示了{“message”:”你好,世界!”} 并且成功获取了JSON数据。

请用其他终端命令进行确认

$ curl -v http://localhost:8080/api/data
*   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, 25 Feb 2023 05:13:10 GMT
<
* Connection #0 to host localhost left intact
{"message":"Hello World!"}

在终端上显示了 {“message”:”你好世界!”} 并成功获取到了 JSON 数据。

总结

    • Ubuntu のシンプルな構成の Java 開発環境で、Spring Boot WEBサービスを実行することが出来ました。

 

    また、Spring Boot を使用しない素の Spring MVC REST WEBサービスの Hello World!と比較すると、少ない記述で同じ動作を実装することが出来ました。
广告
将在 10 秒后关闭
bannerAds