java - Spring MVC 请求映射,这可以是动态/可配置的吗?

标签 java spring spring-mvc

使用 Spring MVC,我知道您如何在每个 Controller 和方法/ Action 中设置 RequestMapping

但是如果我希望它是可配置的,例如我下面的 Controller :

BlogController 
 - with methods for listing blogs entries, single entry, new, update, etc.
ArticleController
 - with methods for listing articles entries, single entry, new, update, etc.

现在在我的应用程序中,管理员可以为网站设置 2 个博客和 1 个文章部分,因此网址如下:

www.example.com/article_section1/ - uses ArticleController
www.example.com/blog1/ - uses BlogController
www.example.com/blog2/ - uses BlogController

也许一段时间后管理员想要另一个文章部分,所以他们只需配置一个新部分,例如:

www.example.com/article_section2/

这必须动态/即时工作,当然无需重新启动应用程序。

我的问题只涉及如何处理到 Controller 的 url 映射。

Spring MVC 怎么可能做到这一点?

我只知道如何在 Controller 或方法级别使用 @RequestMapping("/helloWorld") 将 url 映射到 Controller ,但这使得 url 映射是固定的,不能像我想要的那样配置.

更新:

我会将路径存储在数据库中,并映射到 Controller 类型,如下所示:

path                  controller
/article_section1/    article
/blog1/               blog
/blog2/               blog
..

有了以上信息,我怎样才能将请求分派(dispatch)给正确的 Controller ?

同样,不打算重新加载/重新部署,我意识到这需要更多的工作,但它在规范中:)

最佳答案

这种 URL 映射对您有用吗?

www.example.com/blog/1/
www.example.com/blog/2/

如果是,那很简单:Spring 3 支持路径变量:http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html#mvc-ann-requestmapping-advanced

或者,您可以创建一个通用请求映射和您自己的读取配置文件的子调度程序,但我认为这可能比它的值(value)更多。

关于java - Spring MVC 请求映射,这可以是动态/可配置的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710307/

相关文章:

java - MongoDB聚合Spring/Java(带有数组、分组和匹配的项目)

java - 在使用 Java 的 DynamoDB 扫描中使用包含过滤器

database - 无法执行 JDBC 批量更新; SQL 的未分类 SQLException

mysql - 使用spring boot定期更新数据库中的值

java - Kafka消费者未加入自定义groupId

java - 在 Spring-MVC/Java 中获取可通过 Web 访问的目录

java - Hybris 中是否可以拦截像 CategoryProductRelation 这样的关系?

java - Spring-WS 和 "Error attempting to save SOAPPart"

java - 在 HandlerMapping 中注销映射

java - 如何使用 SQL 或 JPA 确定记录的层次结构