CodeGym /Java 博客 /随机的 /第 8 部分。让我们使用 Spring Boot 编写一个小应用程序
John Squirrels
第 41 级
San Francisco

第 8 部分。让我们使用 Spring Boot 编写一个小应用程序

已在 随机的 群组中发布
本资料是《企业发展概论》系列的结语。往期文章: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 1让我们以 Spring MVC 为例,看一下最简单的 MVC 实现。为此,我们将使用 Spring Boot 编写一个小型 Hello World 应用程序。我会给你一步一步的指导,所以你可以自己重复一切。首先,我们将编写一个小应用程序,然后我们将对其进行分析。

步骤 1. 在 IntelliJ IDEA 中创建一个 Spring Boot 应用程序。

使用 File -> New -> Project… 创建一个新项目。在打开的窗口中,在左侧菜单中,选择 Spring Initializr,然后选择 Project SDK。保留 Initializr Service URL 选项的默认值。 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 2单击“下一步”按钮。在下一个窗口中,我们需要选择项目设置。我们将有一个 Maven 项目。选择 Maven 项目作为类型。填写组和工件字段 单击下一步。 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 3在下一个窗口中,我们需要选择要使用的 Spring Framework 组件。两个对我们来说足够了:
  • Spring Web 是一个让我们创建 Web 应用程序的组件。该组件包括 Spring MVC。
  • Thymeleaf 是我们的模板引擎。它可以让我们将数据从 Java 发送到 HTML 页面
第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 4第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 5在下一个窗口中,选择项目的名称和在文件系统中的位置: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 6单击“完成”按钮。项目已创建。我们最终得到以下项目结构: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 7这里我们对 2 个文件感兴趣:pom.xml(部署描述符)。这个东西可以让你快速轻松地将库从不同的框架导入到我们的项目中。它也是我们配置应用程序构建方式的地方。我们的应用程序是使用 Maven 构建的,pom.xml 是此构建系统的配置文件。Java 类是 MvcDemoApplication。这是我们应用程序的主类。我们将从中启动我们的 Spring Boot 项目。首先,只需运行此类的主要方法。这是此类的代码以及 pom.xml 文件:MvcDemoApplication:

@SpringBootApplication
public class MvcDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MvcDemoApplication.class, args);
    }

}
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.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codegym/groupId>
    <artifactId>mvc_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvc_demo</name>
    <description>Spring MVC Demo</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

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

</project>

步骤 2. 创建网页

我们的应用程序将非常简单。我们将有一个主页 (index.html),其中包含指向欢迎页面 (greeting.html) 的链接。在问候语页面上,我们显示问候语。我们将使用 URL 参数将要在问候语中使用的名称传递给 greeting.html 页面。让我们创建应用程序的主页 — index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Main page</title>
</head>
<body>
    <p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
现在我们将创建 greeting.html 页面:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
我们的页面有一个<p th:text="'Hello, ' + ${name} + '!'" />标签,这对于 HTML 来说是不正常的。th标签的属性是pThymeleaf 模板引擎使用的一种机制。标记p的值将是“Hello”+ name我们将在 Java 代码中设置的变量的值。

步骤 3. 创建控制器

在 mvc_demo 包中,我们将创建一个控制器包,我们将在其中创建我们的控制器 HelloWorldController:

@Controller
public class HelloWorldController {

   @RequestMapping(value = "/greeting")
   public String helloWorldController(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
       model.addAttribute("name", name);
       return "greeting";
   }

}
一方面,代码很少,但另一方面,却发生了很多事情。下面开始我们的分析。@Controller 注解表明这个类是一个控制器。在 Spring 中,控制器处理针对特定 URL 的 HTTP 请求。我们的类有一个 helloWorldController 方法,它标有 @RequestMapping(value = "/greeting") 注释。此注释指示此方法处理指向 /greeting URL 的 HTTP GET 请求。换句话说,如果有人导航到 /greeting,将调用此方法。此方法返回一个字符串。根据 Spring MVC,控制器方法应该返回视图的名称。接下来,Spring 将查找具有相同名称的 HTML 文件,它将作为对 HTTP 请求的响应返回。如你看到的, 我们的方法有两个参数。我们来看一下: 参数一:@RequestParam(name = "name", required = false, defaultValue = "World") 字符串名称。@RequestParam 注解表明字符串名称参数是一个 URL 参数。如果注释指示此 URL 参数是可选的(必需 = false),那么如果它不存在,则字符串名称参数的值将为“World”(defaultValue =“World”)。如果存在,则 URL 参数将为“名称”(name = "name")。这里可能有很多你不明白的地方。让我们提供一些例子。下表显示了字符串名称参数的值,以及访问 /greeting 的各种选项(有和没有 URL 参数)
示例网址 字符串名称的值
/问候语 世界
/问候语?name=Amigo 朋友
/问候语?名字=佐尔 佐尔
参数2:第二个参数是一个Model模型。这个参数是一些模型。该模型由各种内部属性组成。每个属性都有一个名称和一个值。像键值对之类的东西。我们可以使用此参数将数据从 Java 代码发送到 HTML 页面。或者,使用 MVC 术语,将数据从模型发送到视图。只剩下检查最后一行了。这就是我们将数据从 Java 发送到 HTML,或从模型发送到视图的方式。该方法包括以下行: model.addAttribute("name", name); 这里我们创建一个名为 name 的新属性,并为其分配 name 参数的值。记得,我们最近讨论过, <p th:text = "'Hello,' + ${name} + '!'" /> 我们说 p 标签的值是“Hello” + name 变量的值,我们将在 Java 代码中设置它。我们使用该行设置此值 model.addAttribute("name", name);

步骤 5. 运行

首先,我们需要运行 MvcDemoApplication 类的主要方法: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 9在日志中,我们将看到我们的 Web 应用程序在端口 8080 上启动: 这意味着在浏览器中,我们可以访问http://第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 10页面localhost:8080第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 11这里有 index.html 页面。让我们点击欢迎页面的链接: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 12我们的控制器在此转换中被调用。我们没有通过 URL 传递任何参数。因此,name 属性采用注释中指示的默认值(“World”)。让我们尝试通过 URL 传递参数: 第 8 部分。让我们使用 Spring Boot 编写一个小应用程序 - 13一切正常。现在尝试追踪 name 变量的路径:
  1. 用户在 URL 中传递了“name=Amigo” ->
  2. 控制器处理了我们的动作,接收了 name 变量,并将一个名为 name 的模型属性设置为等于接收到的值 ->
  3. 该数据从模型中查看,最终出现在 greeting.html 页面中,并显示给用户
就这样吧!

今天我们熟悉了 MVC(模型 - 视图 - 控制器)这个相当大且有趣的话题。本系列文章到此结束,旨在向您介绍在开始企业开发之前需要了解的内容。

在评论中,告诉我们您对哪些主题感兴趣——我们会解决这些问题!

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION