Spring Boot的Web应用程序基础① ~IntelliJ的使用方法和MVC模型的概述~

我想使用IntelliJ和SpringBoot来创建一个简单的Web应用程序。

IntelliJ是什么?

IntelliJ是捷克公司JetBrains于2001年开发的一种集成开发环境(IDE),IDE是指集成了源代码编辑器、编译器、调试器等编程所需工具的软件,以便能够在一个界面中统一使用。

安装步骤

请介绍一下IntelliJ IDEA 社区版

使用Spring Initializr创建新的项目

Spring Initializr是一种工具,可以用于创建新的Spring Boot项目。

通过这个工具来创建项目,然后在IntelliJ IDEA中导入,按照这个流程来创建。
点击以下链接,进入Spring Initializr的网站。

 

スクリーンショット 2023-08-03 8.15.04.png

点击「生成」按钮后,等待zip文件下载完成,然后将zip文件解压并移动到任意位置。

然后,启动IntelliJ,选择项目,点击“build.gradle”。

スクリーンショット 2023-08-03 8.27.07.png

然后选择 src/main/java/com/example/practice/PracticeAplication,并启动“Debug PracticeAplication”,就像以下图片所示。

スクリーンショット 2023-08-05 7.59.06.png

当你启动时,会显示如下内容。
从下面的日志中可以看到,“8080”这样的东西,所以当你点击http://localhost:8080时,会显示如下(下面的图片)。

2023-08-05T08:00:39.351+09:00  INFO 42300 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
スクリーンショット 2023-08-05 8.00.52.png
スクリーンショット 2023-08-05 8.10.40.png

创建网页应用所需的预备知识 suǒ xū de zhī shi)

MVC模型的含义

MVC是Web应用程序开发中的一种架构(设计思想)。
它将编码过程分为M(模型)、V(视图)和C(控制器),并在各种语言的框架中使用,不仅限于Java的Spring Boot,还有Python的Django和PHP的Laravel等。

スクリーンショット 2023-08-05 9.18.38.png

模型

Model主要用于与数据库进行交互,将从数据库获取的数据提取并转换为程序可用的形式。
在Spring Boot中,通常使用普通的Java对象或实体。

观看

View是用户与网站之间的界面。
当用户想要使用“Web服务”时,系统需要提供“外观和易用性”。

负责承载这一接点的是界面。

为了将在服务器端处理的数据动态地显示给用户或者在Web浏览器上显示HTML,我们会进行一些处理。在Spring Boot中,使用Thymeleaf(也称为”タイムリーフ”)作为HTML模板文件来实现这一点。

控制器

控制器作为连接模型和视图的桥梁,负责协调应用程序的各个部分。
根据用户输入的信息,它指示模型提取数据。
另外,它还指示视图根据模型提取的数据来展示界面。

在许多项目中,使用MVC可以提高工作效率和管理效率,使程序易于理解,对所有人都明显。

“Request” and “response” conceptualization

要显示图像,重要的是理解”请求”和”响应”的概念。

请求是客户端向服务器要求信息的行为。
响应是服务器向客户端返回信息的行为。

在MVC模型的参考图中,浏览器向”http://localhost:8080″发送请求,服务器处理请求并返回响应,在浏览器上显示”

Hello World

“。

在Spring Boot中,将请求和响应返回的类称为Controller。在Spring Boot中创建Web应用程序意味着将请求与Controller关联起来,并在Controller中生成响应。

现在,我们将创建一个过程,通过向“http://localhost:8080”发送请求,使服务器进行处理并返回响应,在浏览器上显示”

Hello World

“。

这个文件的构成

文件构成(点击展开).
├── .gradle
├── .idea
├── build
├── gradle
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── practice
│ │ │ ├── PracticeApplication.java
│ │ │ └── web
│ │ │ └── indexController.java
│ │ └── resources
│ │ ├── static
│ │ ├── templates
│ │ └── application.properties
│ └── test
├── .gitignore
├── build.gradle
├── gradlew.bat
├── HELP.md
└── settings.gradle

文件结构(点击展开)


├── .gradle
├── .idea
├── build
├── gradle
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── practice
│ │ │ ├── PracticeApplication.java
│ │ │ └── web
│ │ │ └── indexController.java
│ │ └── resources
│ │ ├── static
│ │ ├── templates
│ │ └── application.properties
│ └── test
├── .gitignore
├── build.gradle
├── gradlew.bat
├── HELP.md
└── settings.gradle

首先,前往”com/example/practice”目录,然后选择New→Java Class,输入”web.indexController”,就像下图所示。

スクリーンショット 2023-08-05 14.30.55.png

这样一来,屏幕上将显示如下内容。

スクリーンショット 2023-08-05 14.34.22.png

以下的代码是向“http://localhost:8080”发送请求,服务器进行处理并返回响应,在浏览器上显示”

Hello World

“的过程。

package com.example.practice.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//Spring Boot はそのクラスを Controller として認識させるためにアノテーションを記述します。
@Controller
public class indexController {
    @GetMapping
    //メソッドとGETの処理を行うURLを紐づける役割を担う役割
    //何もつけない場合はトップページを表示する
    @ResponseBody
    //@ResponseBodyというアノテーションをメソッドに記述すると、
    // 戻り値がそのままレスポンスのボディの内容になる。
    public String index() {
        return "<h1>Hello World!</h1>";
    }
}

当重新运行「Debug PracticeAplication」时,在「http://localhost:8080」上会显示「Hello World!」。

スクリーンショット 2023-08-05 14.57.18.png

模板引擎 (Mó

为了解决这个问题,我们将使用模板引擎。
模板引擎是一种根据模板和数据动态生成文本的机制。

在Spring Boot中,常常使用Thymeleaf(慶融葉)作為模板引擎,本次也會使用Thymeleaf。

為了設定 Thymeleaf,請在 build.gradle 中添加以下內容。

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

下一步,在src/main/resources/templates文件夹中创建一个名为”index.html”的文件,并编写以下代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>業務用アプリケーション</title>
</head>
<body>
<h1>業務用アプリケーション</h1>
</body>
</html>

随之而来, indexController.java也将按以下方式进行更改。

package com.example.practice.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class indexController {
    @GetMapping
    public String index() {
        return "index";
    }
}

重新运行,将会显示如下图片。

スクリーンショット 2023-08-06 10.22.01.png

使用Spring Devtools来启用项目的自动更新的方法

之前一直在进行开发并进行重新执行,但是在Spring Boot中,有一个工具可以自动重新显示更改内容,因此也可以考虑引入Spring Devtools。

在build.gradle文件中添加以下依赖关系。

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

然后点击”IntelliJ IDEA”,再点击”设置”,找到”构建、执行、部署”,再点击”编译器”。

スクリーンショット 2023-08-06 10.30.04.png

勾选“自动构建项目”。

スクリーンショット 2023-08-06 10.30.37.png

请勾选允许在已运行的应用程序中启动自动制作。

スクリーンショット 2023-08-06 10.31.13.png

接下来,在application.properties文件中添加以下代码,就可以实现自动更新。

spring.thymeleaf.prefix=file:src/main/resources/templates/

总结

简而言之,IntelliJ是一款于2001年开发的编程集成开发环境(IDE)。

接下来,我们可以使用Spring Initializr来创建一个新项目并将其导入到IntelliJ中,这样项目的基本结构就会被初始化。

在我们创建的项目中,我们将引入MVC模型(模型-视图-控制器)。

这是一个用于整理应用程序结构的架构。

模型负责处理数据,视图用于显示,控制器负责控制处理。通过使用称为Thymeleaf的模板引擎,可以在HTML中嵌入Java代码,实现动态显示,而无需手动嵌入。

通过遵循以上步骤,您可以使用Spring Boot和Intellij轻松创建一个简单的Web应用程序。通过这个过程,您可以加深对IDE的使用和MVC模型的理解。

bannerAds