ServiceLoader的使用

發現ServiceLoader是個相似spring的東西,能夠指定接口和實現,經過ServiceLoader去載入。
下面是個人一個例子:javascript

Java代碼java

 收藏代碼

  1. package com.test2;  
  2.   
  3. import java.util.ServiceLoader;  
  4. import com.test.IHello;  
  5.   
  6. public class Main {  
  7.     public static void main(String[] args) {  
  8.         ServiceLoader<IHello> loder=ServiceLoader.load(IHello.class);  
  9.         for (IHello hello : loder) {  
  10.             System.out.println(hello.getClass());  
  11.             hello.sayHello();  
  12.         }  
  13.     }  
  14.   
  15. }  



依賴的IHello是在另一個jar包:test.jar.在test.jar裏有一個接口,兩個實現,Hello1和Hello2. 經過在的META-INF下的services文件夾的com.test.IHello文件來指定實現,多個實現的時候使用換行。
如個人項目中就是spring

Java代碼app

 收藏代碼

  1. com.test.Hello1  
  2. com.test.Hello2  



注意,這個只能是打成jar以後給其餘項目用,本身是不能夠用本身的。



附件有個人源碼spa

相關文章
相關標籤/搜索