【发布时间】:2013-11-24 02:44:19
【问题描述】:
我们正在使用 Spring MVC 开始一个新项目,我们希望摆脱注解驱动的请求/url 映射。我们希望实现以下用例:
用例 A
- 用户输入一个 URL。
- 请求映射处理程序检索映射列表(例如从数据库中),并根据此动态映射列表调用相关控制器。
这是因为我们也希望能够做到以下几点:
用例 B
- 我们希望将新的 Controller(可能是新的报告模块)加载到 Web 应用程序中,而无需重新部署或重新启动服务器。
- 我们会将这个新控制器映射到一个 URL 并将其保存在某个地方(很可能是 DB)。
- 我们希望在 Spring 应用上下文中注册 Controller(由 Spring 管理)。
- 然后我们想在请求映射中使用这个新的控制器。
我们已经初步了解了实现这一点的不同方式,但我们不确定实现这条路线的最佳架构/方法。几个问题:
- 对于用例 A,我们如何在 Spring MVC 框架中实现它(或者如果可能的话)?
- 对于用例 B,是否有一个好的框架或方法可以为 Web 应用程序动态加载和注册它?我们对 OSGI 进行了粗略的了解,但似乎建议在非 Web 应用程序中使用它。
【问题讨论】:
-
Imo,你应该重新考虑你的设计。
DispatcherServlet类不用于刷新/重新加载处理程序。即便如此,如果您的映射存在冲突,应用程序也会崩溃,并且无论如何您都必须重新启动。
标签: java spring spring-mvc osgi