Spring Boot 手动从Spring容器中获取对象

1.重写 ApplicationContextAware 接口里面的 setApplicationContext 方法

@Component
public class ApplicationContainer implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

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

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

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

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

2.在其他地方就可以调用静态方法从容器中获取对象了

猜你喜欢

转载自www.cnblogs.com/dmxk/p/11692321.html