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

时间:2015-07-06 18:51:52

标签: rest spring-boot dependency-management

我尝试了解spring boot如何处理html页面。我开始关注指南http://localhost/merchant/。本指南介绍了如何使用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>

以下from spring.iospring-boot-starter-thymeleaf(现在不需要)更改为spring-boot-starter-web,之后我无法看到网页。我看到结果:

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

当我将Gradle依赖关系恢复为thymeleaf时,一切正常。

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

}

有人可以解释一下web这个唯一的HTML网页thymeleafsrc/main/resources/templates/greeting.html依赖关系之间的区别吗?

1 个答案:

答案 0 :(得分:3)

它也应该与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应用程序所需的一组基本依赖项。这些基本依赖项是:

  • 杰克逊数据绑定
  • 冬眠-验证
  • 弹簧芯
  • 弹簧的web
  • 弹簧webmvc
  • 弹簧引导起动
  • 弹簧引导起动的Tomcat

spring-boot-starter-thymeleaf基于spring-boot-starter-web并添加了一些其他依赖项,例如百万美元模板引擎:

  • thymeleaf布局方言
  • 弹簧芯
  • 弹簧引导起动
  • 弹簧引导起动的Web
  • thymeleaf-spring4

你可以在mvnrepository.com上查看(spring-boot-starter-thymeleafspring-boot-starter-web)。