spring-boot-starter-web 与 spring-boot-starter-thymeleaf

spring-boot-starter-web vs spring-boot-starter-thymeleaf

我尝试了解 spring 引导如何与 html 页面一起工作。我开始遵循指南 from spring.io。本指南展示了如何使用 html 页面和视图技术 Thymeleaf。它有页面:

<!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>

我改成了简单的

<!DOCTYPE HTML>
<html>
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    Hello
</body>
</html>

然后spring boot reference documentationspring-boot-starter-thymeleaf(现在不需要)改成spring-boot-starter-web,之后就看不到网页了。我看到结果:

There was an unexpected error (type=Not Found, status=404). 
No message available.

当我恢复 Gradle 对 thymeleaf 的依赖时,一切正常。

控制器src/main/java/hello/GreetingController.java

package hello;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class GreetingController {

@RequestMapping("/greeting")
public String greeting() {
    return "greeting";
}

}

申请src/main/java/hello/Application.java

package hello;

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);
}

}

有人可以向我解释一下 webthymeleaf 依赖项之间的区别吗? src/main/resources/templates/greeting.html 中的 HTML 页面?

它还应该与 gradle 依赖项一起工作 org.springframework.boot:spring-boot-starter-web:1.2.5.RELEASE 而不是 org.springframework.boot:spring-boot-starter-thymeleaf:1.2.5.RELEASE

spring-boot-starter-web 的功能类似于使用 spring 开发 Web 应用程序所需的一组基本依赖项。这些基本依赖项是:

  • 杰克逊数据绑定
  • 休眠验证器
  • spring-核心
  • spring-网络
  • spring-webmvc
  • spring-boot-starter
  • spring-boot-starter-tomcat

spring-boot-starter-thymeleaf 基于 spring-boot-starter-web 并添加了一些额外的依赖项,例如 thymeleaf 模板引擎:

  • thymeleaf-layout-方言
  • spring-核心
  • spring-boot-starter
  • spring-boot-starter-web
  • 百里香叶-spring4

您可以在 mvnrepository.com 上查找(spring-boot-starter-thymeleaf and spring-boot-starter-web)。