手动获取bean

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

上一篇:c_securec.h头文件


下一篇:跟着华为,学数字化转型(5):数据保护和业务决策