反思:第一次接触Spring Boot

Screenshot 2022-10-28 at 12.04.03.png

首先

我想使用Spring Boot来创建Web应用程序,
学习了Java和使用Spring Boot,
尝试第一次运行Hello World的时候,发生了…

研发环境

    • Java 19

 

    • Spring Boot 2.7.5 maven project

 

    macOS Ventura (CPU:Intel)

Spring Boot 是一种Java开发框架。

将Spring项目组进行打包,并提供一个简单易用的框架。

环境建设

a-28 at 14.10.27.png
a-28 at 14.09.58.png
a-28 at 14.07.25.png
a-28 at 14.07.57.png
a-28 at 14.08.20.png
a-28 at 14.08.39.png
a-28 at 14.09.04.png
ff.png
ff2.png
ff3.png
Screenshot 2022-10-28 at 14.17.33.png

代码 mǎ)

src/main/java/com/example/demo/HelloWorld.java 的中文复述:

package com.example.demo;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RestController;

@Controller
public class HelloWorld {
    
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String Hello(Model model) {
        model.addAttribute("title", "Hello World");
        model.addAttribute("message", "Welcome to my site");
        return "hello";
    }

}

src/main/resources/templates/hello.html 的源文件。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello</title>
</head>
<body>
    <h1 th:text="${title}"></h1>
    <p>
        <div th:text="${message}" />
    </p>
</body>
</html>

实施结果

请执行以下命令。

./mvnw  spring-boot:run  #開発環境にも書いてますがmacなので./で実行しています
Screenshot 2022-10-28 at 14.30.19.png
a-28 at 12.04.03.png

这么说?啊?嗯?噢!!!!噢噢!! 愤怒!!

因果、缘由、理由、动机、目的、起因、根源

这个文件路径的位置没有特别的问题。
也有可能是404的原因,因为源代码并没有在眼前。
出了什么问题呢?

对于使用Spring Boot的人来说,这段Java源代码让人不禁笑出声来。

其实,这段代码是我为了将值放到HTML中并使其运行,强行写出来的结果。

解决方案

这是关于Spring群组包和工具内容的一篇文章,要求对其进行详细理解并进行撰写。
这次将写下成功运行该代码的代码。
其中会附加重要的用于运行Spring Boot的库等信息。

依赖关系问题

为了嵌入HTML,这段代码使用了一个名为Thymeleaf的模板引擎。所以你需要在pom.xml中进行追加。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
        
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>

配置 Thymeleaf

为了使用thymleaf,需要使用html文件进行配置
src/main/resources/application.properties

#thymeleafを使用する
spring.thymeleaf.mode=HTML

Java代码

这是我在代码中用注释追加的个人不理解部分。

src/main/java/com/example/demo/HelloWorld.java -> 源代码/主要/Java文件夹/例子/演示/HelloWorld.java

package com.example.demo;

import org.springframework.boot.SpringApplication; //

//tymeliefを使用する /src/templates/application/spring.thymeleaf.mode=HTML

import org.springframework.ui.Model; //Spring MVC thymeleafを使用するライブラリ addAtrributeを使ってvalueの値を代入

import org.springframework.web.bind.annotation.GetMapping; //GETリクエストされた際の

//import org.springframework.web.bind.annotation.RequestMapping; //数種のRequestのマッピング
//import org.springframework.web.bind.annotation.RequestMethod; // RequestMappingの引数の中で使える. リクエストの受付種類を method =  RequesrtMethod.GET/POST



import org.springframework.boot.autoconfigure.SpringBootApplication; //	Webページアプリ用,メソッドの戻り値が遷移先のview
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RestController; //APIサーバーなどに使われる、XML JSON



@SpringBootApplication //このアノテーションで Spring Bootのアプリだと宣言します。
@Controller
public class HelloWorld {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorld.class, args);
        }
    
    //リクエスト URL に対して、どのメソッドが処理を実行するか定義するアノテーション。GETでアクセスされたリクエストの場合
    //@RequestMapping(value = "/", method = RequestMethod.GET)

    //
    @GetMapping("/")
    public String Hello(Model model) {
        model.addAttribute("title", "Hello World");
        model.addAttribute("message", "Welcome to my site");
        return "hello";
    }

}

您可以将下面的函数中的变量赋值给title,并传递给HTML。

model.addAttribute("title", "Hello World");
model.addAttribute("message", "Welcome to my site");

src/main/resources/templates/hello.html 的中文翻译选项:主要/源/资源/模板/你好.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello</title>
</head>
<body>
    <h1 th:text="${title}"></h1> <!-- titleにHellowWorldが代入されている -->
    <p>
        <div th:text="${message}" />
    </p>
</body>
</html>

执行结果

用下面的指令来执行

./mvnw  spring-boot:run  #開発環境にも書いてますがmacなので./で実行しています
っっf.png

好了!Spring Boot × Thymeleaf的环境建立完成了。

最终或者最后

我认为不应该像Python一样认为只要做这个,那个就会成功。我会努力学习Java和Spring,并深入了解其机制。

给出参考资料

提供参考来源

请参考资料

供参考使用

参照资料

Spring Boot 入门-参考文档

春季快速入门指南

广告
将在 10 秒后关闭
bannerAds