InitializingBean是Spring提供的拓展性接口,InitializingBean接口为bean提供了属性初始化后的处理方法,它只有一个afterPropertiesSet方法,凡是继承该接口的类,在bean的属性初始化后都会执行该方法。
InitializingBean用法:自定义接口a继承InitializingBean
public interface AdvertiserService extends InitializingBean {
}
自定义接口a的实现类b,需额外实现InitializingBean接口的afterPropertiesSet方法.
@Service
public class HuaWeiAdvertiserServiceImpl implements AdvertiserService {
@Override
public void afterPropertiesSet() throws Exception {
AdvertiserMapFactory.register(991,this);
}
}
自定义工厂类,使实现类b启动时注册到工厂中(存入map)
public class AdvertiserMapFactory {
private static Map advertiserMap = new HashMap<>();
public static void register(Integer code, AdvertiserService advertiserService){
advertiserMap.put(code, advertiserService);
}
public static AdvertiserService getAdvertiserService(Integer code){
return advertiserMap.get(code);
}
}
后续使用接口a的某个实现类时直接去工厂取
AdvertiserService advertiserService = AdvertiserMapFactory.getAdvertiserService(code);



