java - 我们在 Controller 类中所做的更改有多少会在不重新部署的情况下得到动态反射(reflect)?

标签 java spring tomcat

<分区>

我自己尝试通过谷歌搜索来理解这一点,但没有找到任何令人满意的结果。

我可以用一个简单的例子来描述我的狩猎对象。我有一个简单的 Spring MVC 应用程序部署到我的 Tomcat 服务器,它只有一个 Controller 类 @RequestMapping 注释仅在 Controller 类中的现有方法上。现在,我添加了另一个 @requestMapping 注释,但是在类级别,显然 URL 将被更改以访问与 Controller 类方法的 @RequestMapping 相关的 URL 模式.

现在,我不需要重新启动服务器来测试资源是否不再适用于相同的 URL 模式。

我目前的理解是,当我们将应用程序部署到本地服务器时,该 war 文件将用于运行该应用程序。那么,我们在 Controller 类中所做的更改如何动态更新,我们可以在不重新启动服务器并重新部署具有最新更改的新 war 文件的情况下对其进行测试。

此外,我给出了这个特定场景,因为我刚刚遇到它。

最佳答案

通常情况下,无论您在代码中更改什么而不更改类的形状/接口(interface),都可以通过热代码替换来处理(我认为这就是您所说的 -- 调试)

@Annotations 是静态加载的,在运行时不能改变。

您可以使用一些很酷的类加载器,如 JRebel 或 Spring-Loader 来改进这种能力。当您使用 spring-boot 时,开发人员工具会在您更改某些内容时重新加载 Web 上下文,这也很酷

关于java - 我们在 Controller 类中所做的更改有多少会在不重新部署的情况下得到动态反射(reflect)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096740/

相关文章:

java - 为什么以及如何编译此 Java 代码?

java - 媒体播放器在我的代码中不起作用

java - Camel : CamelFailureEndpoint not set when sending exchange to DeadLetterChannel

android - 为什么tomcat依赖wi-fi

apache - Tomcat - 系统找不到指定的文件

java - Launch4J - 主 jar,所有依赖到一个 exe

java - JMockit 与记录的期望不匹配

Spring 安全: authorize on two or more web applications simultaneously

java - 带有 i18n(国际化)和 thymeleaf 的 Spring Boot

java - 手动拉动 spring bean 的最佳方法?