Java 在Spring中更改依赖资源时重新加载类
您知道当Eclipse所依赖的资源文件(如spring上下文文件)被更新时,Eclipse如何自动重新加载在Tomcat中运行的类,从而不必重新启动Tomcat吗?如何使类依赖于资源文件,以便Eclipse在资源文件更改时重新发布它?Eclipse会在其依赖资源文件更新后重新发布Spring类,但不会重新发布我的。我不确定是Spring为您这样做的。您是在Eclipse或Netbeans这样的IDE中开发的吗?可能发生的情况是,当您更改代码时,您的IDE正在“发布”(即重新部署)您的应用程序代码,因此每次IDE发布应用程序代码时,应用程序都会重新初始化,这给人一种错觉,即Spring会在上下文文件更改时重新加载它们 这对于一个小的应用程序很有用,但是你的应用程序越大,它就越烦人 如果您正在寻找这种用于开发的行为,请查看JRebel:Java 在Spring中更改依赖资源时重新加载类,java,eclipse,spring,Java,Eclipse,Spring,您知道当Eclipse所依赖的资源文件(如spring上下文文件)被更新时,Eclipse如何自动重新加载在Tomcat中运行的类,从而不必重新启动Tomcat吗?如何使类依赖于资源文件,以便Eclipse在资源文件更改时重新发布它?Eclipse会在其依赖资源文件更新后重新发布Spring类,但不会重新发布我的。我不确定是Spring为您这样做的。您是在Eclipse或Netbeans这样的IDE中开发的吗?可能发生的情况是,当您更改代码时,您的IDE正在“发布”(即重新部署)您的应用程序代码
你说你想重新发布这个类?您的意思是希望更新应用程序上下文中bean的内容吗?如果是这样,那么您可以做以下操作: 1) 编写文件系统监视器以监视资源的更改。有一个例子 2) 让该文件系统监视器在文件/资源发生更改时触发一个定制的Spring ApplicationEvent,必要时为该事件提供资源信息。即文件名、上次修改时间、上次修改时间等
3) 让您想要更新的bean实现ApplicationEventListener,并在它捕获您的文件系统监视器事件时重新加载资源。一个简单但有效的解决方法是将ant builder添加到您的项目中。采取的步骤:
这是一个变通办法,应该会奏效。如果ant脚本在您的项目中,它不会产生任何不良副作用,因为java文件的内容不会改变,也不会影响版本控制系统,而且整个过程与工作空间无关。。我正在使用Eclipse。我感到困惑的是,Eclipse会在更新Spring的依赖资源文件时重新发布其核心类,但不会重新发布我的自定义类。