Spring MVC中基于包的控制器解析



我想知道是否有可能使Spring MVC在解析控制器类时像条纹一样工作。

通常我可以用@RequestMapping注释控制器,以便将其映射到它的URL。

然而,我的老板要求采用一种从Stripes衍生出来的"约定重于配置"机制,经过多年的工作,我们逐渐放弃了这种机制。

您可以看到,条纹Actions在其名称中包含stripes.action的包的类路径下被扫描。每个子包都是一个虚拟目录,最终一个名为SomethingAction的类将映射到url Something.action

当我需要做的是如下:

com.example.product.web.controllers.secure.admin.UserController映射到/secure/admin/usercom.example.something.different.from.before.web.controllers.pub.WelcomeController mapping/pub/welcome

基本上我想让Spring MVC自动映射控制器根据他们的完整类名,而不是使用@RequestMapping在每个控制器。

重要!我不需要确切的命名约定(web.controllers),如果Spring MVC已经有一个命名约定。我只是需要一个。

到目前为止我还没有发现任何线索。由于

ControllerClassNameHandlerMapping会按照您的期望开箱即用。

只需将基本包设置为com.example.product.web.controllers,子包将映射为路径。引用API文档

指定像"com.mycompany"这样的基本包。将基包中的子包作为路径元素包括在内,例如为类名"com.mycompany.myapp.mymodule.BuyForm"生成路径"/mymodule/buyform"。

子包层次结构表示为单独的路径元素,例如:"/mymodule/mysubmodule/buyform"用于类名"com.mycompany.myapp.mymodule.mysubmodule.BuyForm"。

请注意,它被限制为只有一个基本包。如果要扫描不同的包层次结构,则必须相应地定制ControllerClassNameHandlerMapping的行为。

相关内容

  • 没有找到相关文章

最新更新