java - 如何从外部目录中的 jar 创建 bean
问题描述
我有一个基本的 spring 应用程序,它只是加载一个 bean,就是这样。我知道在项目中我可以在一个类中使用注解@Component 将其标记为一个bean,spring 应用程序会找到它并采取相应的行动。
但是,我目前正在尝试将组件放入外部目录/Users/me/plugin.jar 中的 jar 即 plugin.jar 中。我不知道如何让 spring 在该 jar 中搜索带注释的类而不是本地包。这甚至可能吗?
我希望能够从 jar 中加载 bean,而不会将 jar 包含在类路径中,而是通过搜索 jar 的目录并根据其中的任何 Jar 动态创建 bean。
我已经使用 Java 反射和 URLClassLoader 从 jar 中动态加载类,但无法弄清楚如何在 Spring 中做同样的事情。非常感谢任何有关如何开始的帮助或指导。谢谢!
附加信息:spring 应用程序的设计目的是在运行时扫描指定目录中的任何 jar,如果找到 jar,它会从其中的一个类中创建一个 bean。我无法找到如何让 Spring 应用程序搜索扫描指定目录以查找要用作组件的 jar。我发现的所有内容都只是引用项目中的类。
解决方案
您可以创建一个配置,您可以在其中从外部 jar 启动所需的 bean。
@Configuration
public class AppConfig {
@Bean
public MyBean myBean() {
return new YourExternalClassName();
}
}
推荐阅读
- c - 4字节单元流和3字节单元流之间的转换
- java - 为什么对非易失性的写入对主线程可见?
- php - 制作一个包含两个单独值的表单类型,您可以使用 symfony 4 添加多次
- node.js - 如何在 NodeJS 中使用带有 restify 的 actions-on-google dialogflow
- javascript - 通过删除所有查询参数来响应路由器渲染两次和 URL 更改
- swift - RealityKit – 平面检测
- android - 未抛出 RxJava MissingBackpressureException
- flutter - 如何使用 api rest 和 sqflite 以最少的代码离线和在线创建应用程序
- python - 如何使用 Django 将 PDF 嵌入到我的模板中?
- python - Python 中 Try 和 except 的更快替代方案