首页 > 其他分享 >spring通过ApplicationContext获取Bean

spring通过ApplicationContext获取Bean

时间:2022-11-03 15:56:48浏览次数:51  
标签:applicationContext ApplicationContext spring getBean clazz 获取 Bean static

在我们实际开发中,通常通过@Autowired和@Resource来进行bean的获取,其中Autowired默认ByType,Resource默认ByName获取,但是我们如果需要动态的获取bean时,就需要直接借助ApplicationContext的getBean方法进行获取

在工具类中定义一个工具类实现ApplicationContextAware接口 

重写里面

@Service
public class ContextUtil implements ApplicationContextAware {

private static ApplicationContext applicationContext;

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ContextUtil.applicationContext = applicationContext;
}

public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}

public static Object getBean(String name) {
return applicationContext.getBean(name);
}

public static <T> T getBean(String name, Class<T> clazz) {
return applicationContext.getBean(name, clazz);
}
}

 

 

 

我这次在写瑞吉外卖时候 不想把分页代码写在Controller层 想写在Service层 

但是因为别的Service层已经调用了这个service层代码 所以两者互相调用的话直接死循环代码直接挂了

请教老师之后 写个工具类实现applicationContextAware接口 通过getBean方法直接动态获取Bean就ok了

 

标签:applicationContext,ApplicationContext,spring,getBean,clazz,获取,Bean,static
From: https://www.cnblogs.com/jiayuyao/p/16854719.html

相关文章