zoukankan      html  css  js  c++  java
  • Java SPI机制用法demo

    ①构建一个maven工程

    包含如下目录结构:

    src/main/java

    src/main/resources

    src/test/java

    src/test/resources

    ②在src/main/resources目录下新建META-INF/services目录

    ③在src/main/java中新建包,然后新建一个接口

    例如

    package com.liu.spi;
    
    public interface IA {
    	void print(); 
    }
    

     ④新建几个实现类

    例如:

    AIAImpl.java

    package com.liu.spi;
    
    public class AIAImpl implements IA {
    
    	public void print() {
    		System.out.println("AIA");
    	}
    }
    

     BIAImpl.java

    package com.liu.spi;
    
    public class BIAImpl implements IA{
    
    	public void print() {
    		System.out.println("BIA");
    	}
    }
    

     CIAImpl.java

    package com.liu.spi;
    
    public class CIAImpl implements IA {
    
    	public void print() {
    		System.out.println("CIA");
    	}
    }
    

     ⑤在src/main/resources/META-INF/services目录下新建一个文件,文件名叫com.liu.spi.IA(接口的全类名)

    文件内容为:接口实现类的全类名(必须换行)

    com.liu.spi.AIAImpl
    com.liu.spi.BIAImpl
    com.liu.spi.CIAImpl

    注:如需注释,在全类名前用“#”

    ⑥编写测试类IATest.java

    代码如下:

    package com.liu.spi;
    
    import java.util.Iterator;
    import java.util.ServiceLoader;
    
    public class IATest {
    	public static void main(String[] args) {
    		ServiceLoader<IA> spiLoader = ServiceLoader.load(IA.class);  
            Iterator<IA> iaIterator = spiLoader.iterator();  
            while (iaIterator.hasNext()) {  
                iaIterator.next().print();  
            }  
    	}
    }
    

     ⑦打印结果如下:

  • 相关阅读:
    数据处理之求和语句,retain语句
    Day1 Excel基本知识
    Day6 数据清洗(2)
    Day5 数据的清洗
    Day5 快速输入数据的方法(2)
    Day5 快速输入数据的方法
    Day4 利用小技巧进行快速数据处理
    Day3 Excel与数据分析之小技巧
    Day2 Excel与数据处理之定位条件、选择性粘贴及查找功能
    day5:python学习之集合
  • 原文地址:https://www.cnblogs.com/cowboys/p/7644703.html
Copyright © 2011-2022 走看看