看示例以前最好先看了 classLoader和spi原理
对于spi的原理我就不多说了,网上已经有好多了。
http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html 可以参考官网。
我简单描述一个自己写的实例。
- 定义一个接口。
package com.test.spi;
public interface GetYourName {
public String getName(String name);
}
2.实现类
package com.test.spi;
public class DogName implements GetYourName {
@Override
public String getName(String name) {
if("dog".equalsIgnoreCase(name)){
return "My Name Is Dog";
}
return null;
}
}
package com.test.spi;
public class CatName implements GetYourName {
@Override
public String getName(String name) {
if("cat".equalsIgnoreCase(name)){
return "My Name Is Cat";
}