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