1. 概述

在这个教程中,我们将探讨如何在属性文件中设置@RequestMapping值。同时,我们将通过一个实际例子来解释所有必要的配置。

首先,我们定义一个基本的@RequestMapping及其配置。

2. @RequestMapping基础

首先,我们将创建并注解我们的类WelcomeController,使用@RequestMapping来映射Web请求。这个类将分配我们的处理方法getWelcomeMessage()

让我们定义它:

@RestController
@RequestMapping("/welcome")
public class WelcomeController {

   @GetMapping
   public String getWelcomeMessage() {
       return "Welcome to Baeldung!";
   }
}

此外,值得注意的是,我们将在getWelcomeMessage()方法上使用@GetMapping,只映射GET请求。如您所见,我们使用了硬编码字符串来指定路径,静态地指示我们想要访问的路径。有了这样的配置,我们可以完美地访问我们感兴趣的资源,如下所示:

curl http://localhost:9006/welcome
> Welcome to Baeldung!

但是,如果我们想让路径依赖于配置参数呢?接下来,我们将看到如何利用application.properties文件。

3. @RequestMapping与属性文件

根据Spring框架文档(https://docs.spring.io/spring-framework/docs/3.2.16.RELEASE/spring-framework-reference/html/mvc.html),`@RequestMapping`注解中的模式支持`${...}`占位符,用于本地属性、系统属性和环境变量。因此,我们可以将属性文件链接到控制器。

一方面,我们需要创建属性文件本身。我们将它放在resources文件夹中,并命名为application.properties。然后,我们需要创建一个我们选择的名称的属性。在我们的例子中,我们将设置名为welcome-controller.path的属性,并设置我们希望作为请求端点的值。现在,我们的application.properties看起来像这样:

welcome-controller.path=welcome

另一方面,我们需要修改我们在@RequestMapping中建立的静态路径,使其读取我们创建的新属性:

@RestController
@RequestMapping("/${welcome-controller.path}")
public class WelcomeController {
    @GetMapping
    public String getWelcomeMessage() {
        return "Welcome to Baeldung!";
    }
}

这样,Spring就能映射端点的值,当用户访问这个URL时,这个方法将负责处理它。下面可以看到,使用相同的请求,相同的消息被显示出来:

curl http://localhost:9006/welcome 
> Welcome to Baeldung!

4. 总结

在这篇短文中,我们学习了如何在属性文件中设置@RequestMapping值。此外,我们创建了一个功能齐全的例子,帮助我们理解所讲解的概念。

本文的完整源代码可在GitHub上查看:https://github.com/eugenp/tutorials/tree/master/spring-web-modules/spring-mvc-basics-6