Registry类实现监听器,泛型事件
监听器触发事件-->放入Map中
//Map存储k-v,v是接口
写一个方法,通过一个Registry类操作这个Map通过key拿到对应的实现类
具体:
继承一个listener,泛型是一个事件
当这个事件发生的时候,就会执行onApplicationEvent里的方法-->
Map<String,Filler> map = contextRefreshedEvent.getApplicationContext().getBeansOfType(Filler.class);
拿到上下文容器,从容器里拿到接口下的所有文件(filter);
处理,过滤等操作,放到对应的fillerMap里
@Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
Map<String,Filler> map = contextRefreshedEvent.getApplicationContext().getBeansOfType(Filler.class);
for (Filler filler:map.values()) {
String area = filler.getArea();
if (StringUtils.isEmpty(filler.getTaxType())){
continue;
}
if (StringUtils.isEmpty(area)){
area = "000000";
}
String key = filler.getTaxType()+"-"+area;
fillerMap.put(key,filler);
}