gpt4 book ai didi

java - Spring MVC Controller 的运行时加载和动态映射请求/URL

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:03 24 4
gpt4 key购买 nike

我们正在开始一个使用 Spring MVC 的新项目,我们希望摆脱注解驱动的请求/url 映射。我们希望实现以下用例:

用例 A

  1. 用户输入一个 URL。
  2. 请求映射处理程序检索映射列表(例如从数据库中),并基于此动态映射列表调用相关 Controller 。

这是因为我们还希望能够执行以下操作:

用例 B

  1. 我们希望将新的 Controller (可能是新的报告模块)加载到网络应用程序中,而无需重新部署或重新启动服务器。
  2. 我们会将这个新 Controller 映射到一个 URL 并将其保存在某个地方(很可能是数据库)。
  3. 我们希望 Controller 在 Spring 应用程序上下文中注册(由 Spring 管理)。
  4. 然后我们想在请求映射中使用这个新的 Controller 。

我们初步了解了可以实现此目的的不同方式,但我们不确定执行此路线的最佳架构/方法。几个问题:

  1. 对于用例 A,我们如何在 Spring MVC 框架内实现它(或者如果可能的话)?
  2. 对于用例 B,是否有好的框架或方法能够为 Web 应用程序动态加载和注册它?我们粗略地了解了 OSGI,但似乎建议在非 Web 应用程序中使用它。

最佳答案

对于用例 A:您可以将 url 映射保存在属性文件中,而不是数据库,然后使用属性占位符在上下文中使用 xml 配置来初始化 bean。通过这种方式保留在 spring 框架内,您可以避免注释。

对于用例 B:Tomcat 支持类的动态重新加载,但仅支持类文件中的非结构性更改。但这有内存泄漏,而且它不会清除类加载器的旧实例,而是创建一个新实例。

关于java - Spring MVC Controller 的运行时加载和动态映射请求/URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com