gpt4 book ai didi

java - OSGi 还是 URLClassLoader?

转载 作者:行者123 更新时间:2023-12-04 06:33:51 26 4
gpt4 key购买 nike

我有相当简单的场景:

我的应用程序具有包含我的应用程序逻辑的核心 jar 文件。这个核心 jar 应该在运行时动态监视文件夹,当插件 jar 被放到那里时,它应该加载它并准备好使用它。可能有很多插件jar。

根据您的经验,什么是最快、最可维护的实现方式?我有2个建议:

1) 一些 OSGi 容器,Apache Felix 文件安装(观察新包的目录)。而核心 jar 作为捆绑安装到容器中。

1.1 问题是核心jar如何检测新安装的bundle是否是插件?有没有办法监视每个添加的包并使用我的独特字符串(例如“kalazplugin”)查找某种设置?换句话说:如何区分我的插件包?

2) 只是观察目录的变化,当 jar 被删除时,然后使用 URLClassLoader 动态加载它并自己实现它。我可能需要为每个插件提供某种配置文件,这些文件将指定一些设置,例如......

最佳答案

如果您使用 OSGi,您可以使用 Extender Pattern 来查看任何包(已经安装并稍后安装),如果您确定该包是您的插件之一,则可以采取任何操作。该模式很容易实现,尤其是在 OSGi 4.2 上,它已经包含一个 BundleTracker,但在早期的 OSGi 版本上只是稍微难一些。

只需谷歌“osgi 扩展器模式”,你就会看到很多引用和实现。

关于java - OSGi 还是 URLClassLoader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com