我正在寻找类似于.NET托管扩展性框架(http://mef.codeplex.com/)的Java功能。对于那些谁也不知道MEF,我想是这样的:动态加载Java接口的实现
给定一个接口
public interface IFoo {
...
}
通过查看加载罐子动态加载的接口的实现。
IFoo foo = loadClassThatImplementsInterface<IFoo>();
问题是程序员在代码时不知道实现的名称,但在代码中提供了扩展点。
这在Java中根本不可能吗?我发现一些谷歌点击说明这是不可能的,但这似乎有点......呃?
当编译时知道实现的完全限定名称时,有很多使用类加载器的示例。这不是我想要的。
对于这个项目,我不想使用DI框架,所以我会考虑ServiceLoader,thx – 2010-10-18 08:53:20
好吧,不要忘记接受答案,如果它是你正在寻找;-) thx – 2010-10-18 08:54:19
找到这个在知道要寻找什么之后: http://java.dzone.com/news/simple-dependency-injection-wi – 2010-10-18 09:02:30