Skip to content

Commit 2181820

Browse files
committed
feat: 修改 Java SPI 示例
1 parent 9b62975 commit 2181820

File tree

9 files changed

+44
-41
lines changed

9 files changed

+44
-41
lines changed

codes/javacore-advanced/src/main/java/io/github/dunwu/javacore/spi/Bumblebee.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

codes/javacore-advanced/src/main/java/io/github/dunwu/javacore/spi/Robot.java renamed to codes/javacore-advanced/src/main/java/io/github/dunwu/javacore/spi/DataStorage.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
* <p>
66
* SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。
77
* <p>
8-
* 配合 <code>src/main/resources/io.github.dunwu.javacore.spi.Robot</code> 文件,实现 SPI 功能
8+
* 配合 <code>src/main/resources/io.github.dunwu.javacore.spi.DataStorage</code> 文件,实现 SPI 功能
99
*/
10-
public interface Robot {
10+
public interface DataStorage {
1111

12-
void sayHello();
12+
String search(String key);
1313

1414
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.github.dunwu.javacore.spi;
2+
3+
public class MysqlStorage implements DataStorage {
4+
5+
@Override
6+
public String search(String key) {
7+
return "【Mysql】搜索" + key + ",结果:No";
8+
}
9+
10+
}

codes/javacore-advanced/src/main/java/io/github/dunwu/javacore/spi/OptimusPrime.java

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.github.dunwu.javacore.spi;
2+
3+
public class RedisStorage implements DataStorage {
4+
5+
@Override
6+
public String search(String key) {
7+
return "【Redis】搜索" + key + ",结果:Yes";
8+
}
9+
10+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.dunwu.javacore.spi;
2+
3+
import java.util.ServiceLoader;
4+
5+
/**
6+
* Java SPI Demo
7+
*
8+
* @author <a href="mailto:forbreak@163.com">Zhang Peng</a>
9+
* @date 2022-04-26
10+
*/
11+
public class SpiDemo {
12+
13+
public static void main(String[] args) {
14+
ServiceLoader<DataStorage> serviceLoader = ServiceLoader.load(DataStorage.class);
15+
System.out.println("============ Java SPI 测试============");
16+
serviceLoader.forEach(loader -> System.out.println(loader.search("Yes Or No")));
17+
}
18+
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
io.github.dunwu.javacore.spi.MysqlStorage
2+
io.github.dunwu.javacore.spi.RedisStorage

codes/javacore-advanced/src/main/resources/META-INF/services/io.github.dunwu.javacore.spi.Robot

Lines changed: 0 additions & 2 deletions
This file was deleted.

codes/javacore-advanced/src/test/java/io/github/dunwu/javacore/spi/JavaSPITest.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)