Java Spring引导控制器路径扩展另一个路径
我们有一个具有如下路径模式的应用程序:Java Spring引导控制器路径扩展另一个路径,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我们有一个具有如下路径模式的应用程序: /{language}/{subsystem}/blah/blah 语言和子系统变量将执行一些公共逻辑,并应用于所有100多个控制器,我想问的是,有没有办法在每个控制器中重复此公共逻辑100次 /{language} 这是为了处理语言逻辑和另一个集中式控制器,如 和/{subsystem} 哪个是处理子系统逻辑和从这些控制器扩展的所有其他控制器? 希望我能描述清楚。非常感谢,周末快乐:)您可以考虑为您的应用程序编写一个。这个拦截器可以从URL路径中获取语言
/{language}/{subsystem}/blah/blah
语言
和子系统
变量将执行一些公共逻辑,并应用于所有100多个控制器,我想问的是,有没有办法在每个控制器中重复此公共逻辑100次
/{language}
这是为了处理语言逻辑和另一个集中式控制器,如
和/{subsystem}
哪个是处理子系统逻辑和从这些控制器扩展的所有其他控制器?
希望我能描述清楚。非常感谢,周末快乐:)您可以考虑为您的应用程序编写一个。这个拦截器可以从URL路径中获取
语言
和子系统
部分,并在中心位置调用公共逻辑
这种方法有几个陷阱,您应该仔细权衡:
语言
和子系统
,并将公共逻辑放入辅助方法中:
@GetMapping(“/{language}/{subsystem}/something”)
公共字符串doSomething(@PathVariable语言,@PathVariable子系统){
LanguageSubsystemHelper.doSomething(语言,子系统);
// ...
}
通过提供可用于所有控制器方法的帮助器,将重复次数减少到最小。这种方法的好处是:
语言
和子系统
用“/language”设置什么样的逻辑?我不确定,但如果您只是想删除相同类型URL的冗余调用,那么请使用“nginx”这类有助于URL分支的工具。