在SpringMVC控制器上覆盖RequestMapping

通过查看我们应用程序的源代码,我发现了一个通用的Spring

MVC控制器,该控制器显示多次复制和粘贴的键和配置值。类的定义完全相同,除了RequestMapping值之外,因为每个应用程序都希望该页面在不同的URL下可用。

我想将此控制器移到一个公共库中,并提供一个默认的RequestMapping值。

@Controller 

@RequestMapping (value="/property")

public class CommonPropertyController {

....

}

如果每个应用程序要使用自己的url模式,将如何覆盖此值?

回答:

通过查看源代码,我有一个思路,无需回到手动(预注释)处理程序定义(这也是实现所需内容的一种方式)。

Spring允许您在@RequestMapping值中使用属性占位符配置器。因此可以使用该事实并进行如下定义@RequestMapping

@Controller

@RequestMapping("${routing.property.path}")

public class CommonPropertyController {

....

}

然后,您只需PropertySourcesPlaceholderConfigurer在应用程序上下文中使用正确的属性进行定义,就可以了。


如果希望在没有指定属性的情况下进行回退映射,则还可以使用属性占位符指定默认值:

@RequestMapping("${routing.property.path:/property}")

以上是 在SpringMVC控制器上覆盖RequestMapping 的全部内容, 来源链接: utcz.com/qa/426251.html

回到顶部