我已经使用Spring Boot的PropertiesLauncher
和Loader-Path: plugins
清单条目一起构建了一个小型应用程序。 plugins
文件夹中有几个jar文件,其中包含META-INF/spring.factories
。
加载外部插件jar的配置可以正常工作。
现在,我想知道如果类路径上的某些内容发生更改,是否以及如何刷新应用程序上下文。例如,删除或添加外部插件jar。
我已经看过SpringApplicationRunListener,但是我想我在这堂课中无法实现。
有什么想法,以及如何实现?
答案 0 :(得分:2)
对于普通的Spring,在类路径上更改jar通常意味着完全重新启动应用程序。在Spring Framework提供的类路径中,没有现成的机制来支持运行时更改。
2009/2010年,有Spring Dynamics Modules个项目,但有it seems abandoned now个项目。
您极有可能必须自己重新实现。也许您应该研究现有的插件系统实现,例如实现Apache Felix的OSGi:
Apache Felix是社区的一项工作,目的是在Apache许可下实现OSGi框架和服务平台以及其他与OSGi相关的有趣技术。 OSGi规范最初是针对嵌入式设备和家庭服务网关的,但是它们非常适合对模块化,组件导向和/或服务导向原理感兴趣的任何项目。 OSGi技术结合了上述原则的各个方面,以定义适用于远程管理的动态服务部署框架。