侧边栏壁纸
博主头像
丛庆

没事儿写代码,有事写代码。email:1024@cong.zone

  • 累计撰写 116 篇文章
  • 累计创建 97 个标签
  • 累计收到 4 条评论

【Spring】spring工具类,使用bean名字获取bean

丛庆
2022-08-06 / 0 评论 / 0 点赞 / 543 阅读 / 133 字 / 正在检测是否收录...
温馨提示:
部分资料和图片来源于网络,如有危害到您的利益请与我联系删除,1024@cong.zone。

在一些静态类中需要使用到ioc中的bean可以使用该方法根据对象名称获取到bean对象。
原理就是使用ApplicationContextAware注入 ApplicationContext然后使用getBean获取bean。

@Component
public class SpringIocUtil implements ApplicationContextAware {

    private static ApplicationContext context;

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

    /**
     * 从ioc容器中中拿指定名称和类型的bean
     *
     * @param beanName bean的名称
     * @param clazz    bean的类型
     * @param <T>      泛型标志
     * @return bean
     */
    public static <T> T getBeanByNameNameClazz(String beanName, Class<? extends T> clazz) {
        return context.getBean(beanName, clazz);
    }
}
0

评论区