Spring Boot:在类路径更改时刷新应用程序上下文

时间:2019-01-08 17:43:58

标签: java spring spring-boot

我已经使用Spring Boot的PropertiesLauncherLoader-Path: plugins清单条目一起构建了一个小型应用程序。 plugins文件夹中有几个jar文件,其中包含META-INF/spring.factories

加载外部插件jar的配置可以正常工作。

现在,我想知道如果类路径上的某些内容发生更改,是否以及如何刷新应用程序上下文。例如,删除或添加外部插件jar。

我已经看过SpringApplicationRunListener,但是我想我在这堂课中无法实现。

有什么想法,以及如何实现?

1 个答案:

答案 0 :(得分:2)

对于普通的Spring,在类路径上更改jar通常意味着完全重新启动应用程序。在Spring Framework提供的类路径中,没有现成的机制来支持运行时更改。

2009/2010年,有Spring Dynamics Modules个项目,但有it seems abandoned now个项目。

您极有可能必须自己重新实现。也许您应该研究现有的插件系统实现,例如实现Apache FelixOSGi

  

Apache Felix是社区的一项工作,目的是在Apache许可下实现OSGi框架和服务平台以及其他与OSGi相关的有趣技术。 OSGi规范最初是针对嵌入式设备和家庭服务网关的,但是它们非常适合对模块化,组件导向和/或服务导向原理感兴趣的任何项目。 OSGi技术结合了上述原则的各个方面,以定义适用于远程管理的动态服务部署框架。