Spring boot 重写控制器请求映射路径以支持方法路径,或向方法添加路径前缀

Spring boot 重写控制器请求映射路径以支持方法路径,或向方法添加路径前缀,spring-boot,spring-security,Spring Boot,Spring Security,我有一个根路径为“/public/myController/”的控制器,但对于某些方法,我需要它为“/private/myController/” 有没有比为每种方法重复整个路径更有效的方法?一种解决方案是只覆盖私有方法路径,第二种方案是为每个方法指定前缀,只在控制器级别保留/myController/path段 无论如何,这是一个解决方案,我必须使用它来区分需要身份验证的公共方法和私有方法,如果有另一种方法将方法标记为私有而不是使用路径匹配,这也可以解决我的问题 @Controller @Re

我有一个根路径为“/public/myController/”的控制器,但对于某些方法,我需要它为“/private/myController/”

有没有比为每种方法重复整个路径更有效的方法?一种解决方案是只覆盖私有方法路径,第二种方案是为每个方法指定前缀,只在控制器级别保留/myController/path段

无论如何,这是一个解决方案,我必须使用它来区分需要身份验证的公共方法和私有方法,如果有另一种方法将方法标记为私有而不是使用路径匹配,这也可以解决我的问题

@Controller
@RequestMapping("/public/myController/")
public class MyController {
    
    @GetMapping(value = "/publicMethod")
    public String publicMethod(){
        return "public";
    }
    
    @GetMapping(value = "/private/myController/privateMethod")
    public String privateMethod(){
        return "private";
    }
}

这是一个品味的问题-就个人而言,我会创建两个控制器
MyPublicController
MyPrivateController
-很可能,这样您将避免重复其他注释,例如-
@PreAuthorize
。他们应该共享的任何逻辑都可以放在第三个
@组件中。