【SpringBoot】获取bean的常用方法
ApplicationContextAware接口使用SpringContext工厂模式
·
第一,简单方法。SpringContext.getBean的方式获取bean
public class RuleConfigParser {
private ConfigBean configBean;
private void initBeans()
{
if(diamondConfigBean==null)
{
configBean = SpringContext.getBean(ConfigBean.class);
}
}
}
第二,工厂模式获取。ApplicationContextAware接口
public class RuleConfigParserFactory implements ApplicationContextAware {
private static final Map<String, RuleConfigParser> cachedParsers = new HashMap<>();
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
Map<String, RuleConfigParser> clientMap = applicationContext.getBeansOfType(RuleConfigParser.class);
if(clientMap != null){
for (RuleConfigParser parser : clientMap.values()) {
if(adapter.getSourceType() != null){
cachedParsers.put(adapter.getSourceType(), adapter);
}
}
}
}
public static IRuleConfigParser getParser(String configFormat) {
if (configFormat == null || configFormat.isEmpty()) {
return null;//返回null还是IllegalArgumentException全凭你自己说了算
}
IRuleConfigParser parser = cachedParsers.get(configFormat.toLowerCase());
return parser;
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)