在 C# 中,您可以轻松地从给定程序集中读取所有类。
我正在寻找 Java 中的等效功能。我需要它来自动将 EJB bean 绑定到我的 Guice 模块。
在 C# 中,您可以轻松地从给定程序集中读取所有类。
我正在寻找 Java 中的等效功能。我需要它来自动将 EJB bean 绑定到我的 Guice 模块。
不幸的是,Java 中似乎没有现成的解决方案。
在我们的项目中,我们使用了一些博客建议的稍微修改的方法。那里描述的解决方案是扫描文件系统和 JAR 中的类。
如果你只想选择实现某个接口的类,你可以做一些额外的检查,比如clazz.isAssignableFrom(MyInterface.class)
.
程序集的 Java 等价物是 JAR 文件;JAR 文件的内容可以通过使用java.util.jar
.
没有更通用的机制(比如获取一个包中的所有类),因为 Java 类加载机制非常灵活,允许通过 HTTP 加载类或动态生成类,因此不可能知道所有可用的类。
我们在轻量级 Java 框架 Snow 中使用了它,并且效果很好。
行家就像
<dependency>
<groupId>com.metapossum</groupId>
<artifactId>metapossum-scanner</artifactId>
<version>1.0.1</version>
</dependency>