我已经在许多其他应用程序中使用了 JDK 的SPI 机制,没有任何问题;但是,我似乎无法让它在 Grails 中工作。
我已经从静态初始化程序和类构造函数中尝试了通常的代码(如下所示),但都没有成功。
ServiceLoader loader = ServiceLoader.load(QueryEngine.class);
Iterator<QueryEngine> it = loader.iterator();
迭代器实际上并不遍历实现类。
我也试过:
ServiceLoader.load(QueryEngine.class, Thread.currentThread().getContextClassLoader());
它应该为当前类使用类加载器,但这也不起作用。
我应该使用其他一些机制来加载实现类吗?