Yohann-study
Spring Factories探索与思考-自定义加载
思路
-
定义接口规范
-
编写具体实现逻辑
-
在
spring.factories
文件中配置自定义实现 -
创建监听器用于加载自定义内容
-
在
spring.factories
文件中配置监听器
定义接口规范
public interface FactoriesTest {
void test();
}
编写具体实现逻辑
public class FactoriesTestImpl implements FactoriesTest {
@Override
public void test() {
System.out.println("-----------------");
System.out.println("FactoriesTestImpl");
System.out.println("-----------------");
}
}
配置自定义实现
com.yohann.boot.fatories.FactoriesTest=\
com.yohann.boot.fatories.FactoriesTestImpl
创建监听器
- 需要选择对应的事件节点执行
public class FactoriesListener implements ApplicationListener<ApplicationEvent> {
@Override
public void onApplicationEvent(ApplicationEvent event) {
//指定ApplicationEvent事件对应执行的逻辑
if (event instanceof ApplicationStartedEvent) {
onApplicationStartedEvent();
}
}
private void onApplicationStartedEvent() {
List<FactoriesTest> factoriesTests = SpringFactoriesLoader.loadFactories(FactoriesTest.class, getClass().getClassLoader());
for (FactoriesTest factoriesTest : factoriesTests) {
factoriesTest.test();
}
}
}
配置监听器
org.springframework.context.ApplicationListener=\
com.yohann.boot.fatories.FactoriesListener