我正在尝试制作一个 Spring Boot 应用程序,其中插件在运行时从 JAR 动态加载。我还希望插件能够访问所有 Spring Boot 功能,最突出的是 Spring Data JPA。我已经弄清楚如何从 JAR 加载类,现在我的问题是如何“连接”加载的类(可能是 Beans、JpaRepositories
等)以“使用”我的主要 Spring Boot 应用程序。
我将来也可能想要拥有自己的注释系统,用于通过插件的主应用程序执行不同的操作(我知道如何使用反射来执行此操作),并且我希望在之后仍然能够执行此操作我设法把 Spring 的东西整理出来。
我想我必须以某种方式告诉 Spring 在扫描注释时从这些 JAR 中另外查找 @Component 和其他有意义的类。我尝试使用@ComponentScan的basePackageClasses
属性,但这需要保持不变,并且硬编码这不是我想要做的事情的选项。
那么我想要实现的目标是否可能实现?如果是,那么我可以通过 Java 代码来完成它,还是可以通过编写一些 XML 配置来实现?
最佳答案
当您启动 Spring 应用程序时,Bean 会被加载并挂接到其上下文中,因此如果您想手动添加更多内容,您可能需要重新加载整个上下文,这对于 Spring Boot 应用程序来说可能不是一个好主意。
相反,我建议使用 spring 配置文件,这样您就可以定义不同的配置,并根据您的需要简单地启用您需要的配置。
了解更多信息:
希望这有帮助!
关于java - 在 Spring Boot 中动态加载 Spring Bean 和组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62373032/