Spring Boot ViewControllerRegistry
最后修改于 2023 年 8 月 2 日
在本文中,我们将展示如何使用 ViewControllerRegistry 创建简单路由。
Spring 是一个流行的 Java 应用程序框架,用于创建企业应用程序。Spring Boot 是 Spring 框架的演进,它有助于以最小的 effort 创建基于 Spring 的独立、生产级应用程序。
ViewControllerRegistry
ViewControllerRegistry 允许创建简单的自动化控制器,这些控制器预先配置了状态码和/或视图。
Spring Boot ViewControllerRegistry 示例
在下面的示例中,我们使用 ViewControllerRegistry 创建一个简单的路由。
build.gradle
...
src
├───main
│ ├───java
│ │ └───com
│ │ └───zetcode
│ │ │ Application.java
│ │ └───config
│ │ AppConfig.java
│ └───resources
│ ├───static
│ │ index.html
│ └───templates
│ hello.html
└───test
└───java
这是项目结构。
build.gradle
plugins {
id 'org.springframework.boot' version '3.1.1'
id 'io.spring.dependency-management' version '1.1.0'
id 'java'
}
group = 'com.zetcode'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}
spring-boot-starter-web 是一个用于构建 Web(包括 RESTful)应用程序的启动器,使用 Spring MVC。它使用 Tomcat 作为默认的嵌入式容器。spring-boot-starter-thymeleaf 是一个用于构建使用 Thymeleaf 视图的 MVC Web 应用程序的启动器。
com/zetcode/config/AppConfig.java
package com.zetcode.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class AppConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/hello").setViewName("hello");
}
}
在 AppConfig 中,我们使用 ViewControllerRegistry 的 addViewController 方法注册一个新路由。
resources/templates/hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello page</title>
</head>
<body>
<p>
Hello there
</p>
</body>
</html>
hello.html 视图显示一条简单的消息。
resources/static/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home page</title>
</head>
<body>
<p>
This is home page. Go to <a href="hello">hello page</a>
</p>
</body>
</html>
这是一个主页。
com/zetcode/Application.java
package com.zetcode;
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);
}
}
Application 设置了 Spring Boot 应用程序。@SpringBootApplication 启用了自动配置和组件扫描。
$ ./gradlew bootRun
运行应用程序后,我们可以导航到 localhost:8080/。
在本文中,我们展示了如何使用 Spring ViewControllerRegistry 创建简单路由。