SpingBoot SPI简单示例

75 阅读1分钟

定义一个接口

public interface GreetingService {
    void sayHello(String name);
}

将其打成jar

定义实现

实现A
  • 依赖GreetingService的jar,编写实现如下:
public class EnglishGreetingService implements GreetingService {
    @Override
    public void sayHello(String name) {
        System.out.println("Hello, " + name);
    }
}
  • 在resources/META-INF/spring.factories中配置接口和实现类的映射
org.example.GreetingService=\
org.example.EnglishGreetingService
实现B
  • 依赖GreetingService的jar,编写实现如下:
public class ChineseGreetingService implements GreetingService {
    @Override
    public void sayHello(String name) {
        System.out.println("你好, " + name);
    }
}
  • 在resources/META-INF/spring.factories中配置接口和实现类的映射
org.example.GreetingService=\
org.example.ChineseGreetingService

使用服务

根据需要依赖实现A或者实现B,直接注入GreetingService即可