首页 > 其他 > 详细

手动获取bean

时间:2021-08-14 16:47:20      阅读:13      评论:0      收藏:0      [点我收藏+]

Spirng

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/** @Author: ZYB @Date: 2021/7/4 @Time: 10:56 @Description: */
public class ApplicationContextUtil implements ApplicationContextAware {
  private static ApplicationContext context;

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

  /**
   * 根据bean的名字获取工厂中对应的Bean对象
   * @param beanName
   * @return
   */
  public static Object getBean(String beanName) {
    return context.getBean(beanName);
  }

  /** 通过class获取Bean */
  public static <T> T getBean(Class<T> clazz) {
    return context.getBean(clazz);
  }

  /** 通过name,以及Clazz返回指定的Bean */
  public static <T> T getBean(String name, Class<T> clazz) {
    return context.getBean(name, clazz);
  }
}

ApplicationContext

??Spring容器是生成Bean实例的工厂,并管理容器中的Bean。生活中我们一般会把生产产品的地方称为工厂,而在这里bean对象的地方官方取名为BeanFactory,直译Bean工厂(com.springframework.beans.factory.BeanFactory),BeanFactory提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,BeanFactory负责配置、创建、管理Bean等基本功能,BeanFactory被称为IoC容器,而称ApplicationContext为应用上下文,ApplicationContext继承了BeanFactory接口,除了包含BeanFactory的所有功能之外,在国际化支持、资源访问(如URL和文件)、事件传播等方面进行了良好的支持。

ApplicationContextAware

??实现ApplicationContextAware接口之后,系统启动时就可以自动给我们的服务注入ApplicationContext对象(自动调用了接口中的setApplicationContext方法),我们就可以获取到ApplicationContext里的所有信息了。

??注意:实现ApplicationContextAware接口的类需要交给spring管理,使用@Component或者在配置文件声明bean

手动获取bean

原文:https://www.cnblogs.com/freecodewriter/p/15140859.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!