Spring mvc spring mvc请求映射约定

Spring mvc spring mvc请求映射约定,spring-mvc,Spring Mvc,我试图在我的应用程序中使用一个好的约定来进行请求映射 现在我有 RegistrationController { @RequestMapping(value="/registerMerchant") ... @RequestMapping(value="/registerUser") ... } 但这并不理想,因为通过查看url,您可能不知道如何在RegistrationController中查找代码 是否有一种方法可以通过编程预先设置这些映射的控制器名称,使它们: /

我试图在我的应用程序中使用一个好的约定来进行请求映射

现在我有

RegistrationController {
   @RequestMapping(value="/registerMerchant")
   ...
   @RequestMapping(value="/registerUser")
   ...
}
但这并不理想,因为通过查看url,您可能不知道如何在
RegistrationController
中查找代码

是否有一种方法可以通过编程预先设置这些映射的控制器名称,使它们:

/registration/registerMerchant
/registration/registerUser

不是以编程方式,而是我见过的这种模式:

@Controller
@RequestMapping(value="/registration/**")
RegistrationController {
   @RequestMapping(value="**/registerMerchant")
   ...
   @RequestMapping(value="**/registerUser")
   ...
}

话虽如此,在过去,我发现要以我期望的方式工作非常困难。不过,可以让它工作。

我认为**/在方法层面太过嘈杂。另一方面,URI可以变得更为静止,比如更多的名词,更少的动词

@Controller
@RequestMapping("/services")
public class RegistrationController {

    @RequestMapping(value = "/merchant/register")
    public void processMerchantRegistration() {

    }

    @RequestMapping(value = "/user/register")
    public void processUserRegistration() {

    }

}

您发现上面的模式很难使用?为什么?另外,我还没有接受这个约定,你能推荐一些其他明智的方法来进行请求映射吗?@mkoryak:这很容易理解,但Spring MVC不擅长让你在出现轻微错误时进行诊断。这是我遇到的最好的模式。我同意这可能有点痛苦。这里的关键是,在使用类级别@RequestMapping之后,确保方法级别的注释不以/开头。