spring mvc请求映射约定

mko*_*yak 5 spring-mvc

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

现在我有

RegistrationController {
   @RequestMapping(value="/registerMerchant")
   ...
   @RequestMapping(value="/registerUser")
   ...
}
Run Code Online (Sandbox Code Playgroud)

但这不是理想的,因为通过查看您可能不知道的URL来查找RegistrationController代码.

有没有办法我可以在程序上预先添加那些映射的控制器名称:

/registration/registerMerchant
/registration/registerUser
Run Code Online (Sandbox Code Playgroud)

ska*_*man 8

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

@Controller
@RequestMapping(value="/registration/**")
RegistrationController {
   @RequestMapping(value="**/registerMerchant")
   ...
   @RequestMapping(value="**/registerUser")
   ...
}
Run Code Online (Sandbox Code Playgroud)

话虽如此,过去我发现这很难以我期望的方式工作.但它可以使用.


ski*_*ipy 5

我认为**/在方法级别是太多的噪音.另一方面,URI可以使用更多的名词和更少的动词来制作更多的REST.

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

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

    }

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

    }

}
Run Code Online (Sandbox Code Playgroud)