java - 控制 Java-web 应用程序的 URL(尤其是 Spring)
问题描述
Spring in Action 5th Edition一书附带了一些可下载的源代码,这些源代码按章节组织。可下载软件的链接如下: https ://www.manning.com/downloads/1599
这是第 1 章示例代码的 POM 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sia</groupId>
<artifactId>taco-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <!--1-->
<name>taco-cloud</name>
<description>Taco Cloud Example</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version> <!--2-->
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>
UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency> <!--3-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin> <!--4-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
调用应用程序(在我的本地服务器上运行)的 URL 如下:
http://localhost:8080/
我想进行更改(对 POM?),以便我可以使用 URL 指定章节编号。具体来说,我想使用以下 URL 调用应用程序:
http://localhost:8080/Chapter01
控制器代码中的@GetMapping 注解使用了我想要保留的根路径(即“/”)。
请建议指点。
解决方案
为了让控制器有一个通用的基地址或 URL 路径,你可以做的是@RequestMapping("/Chapter01")
给你的控制器添加注解。
您的控制器将如下所示:
@RestController
@RequestMapping("/Chapter01")
public class Controller {
@GetMapping("/")
// some get method
}
现在您使用以下 URL 来调用此方法:http://localhost:8080/Chapter01/
推荐阅读
- javascript - 如何在反应中从 json 构建 SQL 查询?
- c# - 使用 Mock 对异常 secario 进行单元测试
- c++ - C++17 向量类如何从参数包中推导出类型?
- php - 如何在 Laravel 的 1 条路线上执行 2 个功能?
- html - 如何使用引导程序将背景拆分为图像后面的 2 种不同颜色
- c++ - 如何访问 C++ 类中的私有数据成员
- shell - KSH 数学运算不返回十进制结果,而是返回 0
- python - Python - 从字符串列表中快速计算文本中的单词并以
- jpa - 如何拦截和修改JPA生成的SQL语句?
- python - 在 Python 中读取用于决策树学习的 CSV 文本文件