gpt4 book ai didi

java - 使 @Controller 的 Spring 注册动态化,无需重新启动应用程序服务器

转载 作者:行者123 更新时间:2023-11-30 05:56:38 28 4
gpt4 key购买 nike

我的应用程序使用引擎应用程序 Engine 运行。该引擎允许从我的项目重新加载 java 类,而无需停止应用程序服务器 (Tomcat),即,当我有项目的新版本时,我会部署它并“调用”引擎来重新加载我的代码。

引擎在 web.xml 中注册了一个 DispatcherServlet (Spring),它映射到 /rest/* 上。由于引擎允许在不停止应用程序服务器的情况下重新加载java代码,理论上我可以创建一个@Controller类,引擎将看到它。但 DispatcherServlet 不会,因为它在应用程序服务器运行时已经初始化过一次。因此,我需要以某种方式使用一组新的 @Controller-s 重新初始化 DispatcherServlet。

我该怎么做?

最佳答案

由于 @Controller 可能存在其他依赖项(例如其他 bean、属性等),因此重新加载可能不是一项简单的任务。您可以尝试使用JRebel which has Spring integration 。很久以前有Spring OSGI项目,但不再维护,看起来 Pivotal 放弃了 OSGI。

我总是发现这些技术不值得花时间,Tomcat 中的热交换代码总是会导致某种泄漏或不可预测的行为。如果我处于您的位置,我会优化应用程序启动时间,而忘记热交换复杂的 Spring bean。

关于java - 使 @Controller 的 Spring 注册动态化,无需重新启动应用程序服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062020/

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