2

ServiceLocator我使用 ServiceProviderPattern编写了一个泛型。

public <T> List<T> locateAll(final Class<T> clazz) {
    final Iterator<T> iterator = ServiceLoader.load(clazz).iterator();
    final List<T> services = new ArrayList<T>();

    while (iterator.hasNext()) {
        try {
            services.add(iterator.next());
        } catch (ServiceConfigurationError serviceError) {
            serviceError.printStackTrace(System.err);
        }
    }

    return services;
}

如果我将服务作为依赖项添加到ServiceLocator抵抗的 maven 模块,它只会找到服务。如果这个服务使用它ServiceLocator本身,我将有一个循环依赖。

我需要ServiceLocator从未知的依赖项中加载类。

4

0 回答 0