Java 动态插件架构。从Spring启动应用程序上的目录加载jar文件

Java 动态插件架构。从Spring启动应用程序上的目录加载jar文件,java,spring-boot,plugin-architecture,Java,Spring Boot,Plugin Architecture,我知道这个问题不时出现,但是关于这个问题的帖子已经很老了。 我有一个Spring启动应用程序。我需要允许开发人员开发插件,实现接口,并允许我的应用程序在启动时动态加载它们。 我不需要在运行时发现,在启动时加载就足够了。 我不希望我的客户开发微型服务。我需要将加载到进程中的进程内模块 应用程序。 编写一个包含插件的XML文件以加载列表是一种选择,尽管我更喜欢简单的配置,如果可以避免这种需要,那就更好了。 我看到了一些选择: OSGi(非常适合我的需要) JPF(最新更新于2007年) JSPF(

我知道这个问题不时出现,但是关于这个问题的帖子已经很老了。
我有一个Spring启动应用程序。我需要允许开发人员开发插件,实现接口,并允许我的应用程序在启动时动态加载它们。
我不需要在运行时发现,在启动时加载就足够了。
我不希望我的客户开发微型服务。我需要将加载到进程中的进程内模块 应用程序。
编写一个包含插件的XML文件以加载列表是一种选择,尽管我更喜欢简单的配置,如果可以避免这种需要,那就更好了。 我看到了一些选择:

  • OSGi(非常适合我的需要)
  • JPF(最新更新于2007年)
  • JSPF(我甚至找不到这一个的github页面)
我真的想要一些快速简单而又没有陡峭学习曲线的东西。如前所述,它应该与Spring Boot配合使用。
我的选项是什么?

您可以使用
属性启动器
向应用程序添加其他路径:

主类必须是:

Main-Class: org.springframework.boot.loader.PropertiesLauncher
然后您可以启动应用程序:

java -Dloader.path=lib,external-jar.jar -jar my-app.jar
请在此处阅读更多相关信息:


在这里

也许我理解错了你。。。我不想启动可执行文件。。。我需要加载这些JAR中包含的类,实例化它们并调用其中的接口方法……这正是这个答案所给出的。您可以将插件放在
lib
目录中,它们将在启动时被检测到。是的,您正在寻找一种不同的方式来执行Spring引导应用程序(可执行文件)。