您知道当Eclipse依赖的资源文件(例如spring上下文文件)更新时,Eclipse如何重新加载在Tomcat中自动运行的类,以便您不必重新启动Tomcat?如何使类依赖于资源文件,以便Eclipse在资源文件更改时重新发布它? Eclipse会在更新依赖资源文件时重新发布Spring类,但不会重新发布我的。
答案 0 :(得分:4)
我不确定春天是不是在为你做这件事。您是在Eclipse或Netbeans等IDE中开发的吗?可能发生的事情是当您更改代码时IDE正在“发布”(即重新部署)您的应用程序代码,因此每次IDE发布时应用程序都会重新初始化,从而产生Spring正在重新加载上下文文件的错觉更改。
这对于小应用程序非常有用,但是你的应用程序越大就会非常烦人。
如果您正在寻找开发的这种行为,请查看JRebel: http://www.zeroturnaround.com/jrebel/
答案 1 :(得分:2)
你说你想要重新发表这个课程吗?您是否希望更新应用程序上下文中bean的内容?如果是这种情况,那么您可以做的是:
1)编写文件系统监视器以监视资源是否有变化。有一个例子on google code
2)每当文件/资源发生变化时,让文件系统监视器触发自定义Spring ApplicationEvent,如果需要,为该事件提供资源信息。即文件名,先前修改时间,最后修改时间等
3)让您想要更新的bean实现ApplicationEventListener并在捕获文件系统监视器事件时重新加载资源。
答案 2 :(得分:1)
一个简单但有效的解决方法是将ant构建器添加到项目中。采取的步骤:
这是一种解决方法,应该可行。它没有不好的副作用,因为java文件的内容不会改变,并且它不会影响版本控制系统,并且如果ant脚本在你的项目中,整个工作区是独立的工作区。