ServiceLoader的使用

    发现ServiceLoader是个类似spring的东西,可以指定接口和实现,通过ServiceLoader去载入。
下面是我的一个例子:

package com.test2;

import java.util.ServiceLoader;
import com.test.IHello;

public class Main {
	public static void main(String[] args) {
		ServiceLoader<IHello> loder=ServiceLoader.load(IHello.class);
		for (IHello hello : loder) {
			System.out.println(hello.getClass());
			hello.sayHello();
		}
	}

}


依赖的IHello是在另外一个jar包:test.jar.在test.jar里有一个接口,两个实现,Hello1和Hello2. 通过在的META-INF下的services文件夹的com.test.IHello文件来指定实现,多个实现的时候使用换行。
如我的项目中就是

com.test.Hello1
com.test.Hello2


注意,这个只能是打成jar之后给其他项目用,自己是不可以用自己的。

ServiceLoader的使用_第1张图片

附件有我的源码

你可能感兴趣的:(ServiceLoader)