@Override
  public <A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType)
      throws NoSuchBeanDefinitionException {

    assertBeanFactoryActive();
    return getBeanFactory().findAnnotationOnBean(beanName, annotationType);
  }
  @Override
  public <T> Map<String, T> getBeansOfType(
      Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException {

    assertBeanFactoryActive();
    return getBeanFactory().getBeansOfType(type, includeNonSingletons, allowEagerInit);
  }
  @Override
  public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType)
      throws BeansException {

    assertBeanFactoryActive();
    return getBeanFactory().getBeansWithAnnotation(annotationType);
  }
 @Override
 public String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType) {
   assertBeanFactoryActive();
   return getBeanFactory().getBeanNamesForAnnotation(annotationType);
 }
 @Override
 public <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException {
   assertBeanFactoryActive();
   return getBeanFactory().getBeansOfType(type);
 }
 @Override
 public String[] getBeanNamesForType(Class<?> type) {
   assertBeanFactoryActive();
   return getBeanFactory().getBeanNamesForType(type);
 }
 @Override
 public String[] getBeanNamesForType(
     Class<?> type, boolean includeNonSingletons, boolean allowEagerInit) {
   assertBeanFactoryActive();
   return getBeanFactory().getBeanNamesForType(type, includeNonSingletons, allowEagerInit);
 }
 @Override
 public Class<?> getType(String name) throws NoSuchBeanDefinitionException {
   assertBeanFactoryActive();
   return getBeanFactory().getType(name);
 }
 @Override
 public String[] getBeanNamesForType(ResolvableType type) {
   assertBeanFactoryActive();
   return getBeanFactory().getBeanNamesForType(type);
 }
 @Override
 public boolean isTypeMatch(String name, Class<?> typeToMatch)
     throws NoSuchBeanDefinitionException {
   assertBeanFactoryActive();
   return getBeanFactory().isTypeMatch(name, typeToMatch);
 }
 @Override
 public boolean isPrototype(String name) throws NoSuchBeanDefinitionException {
   assertBeanFactoryActive();
   return getBeanFactory().isPrototype(name);
 }
 @Override
 public <T> T getBean(Class<T> requiredType, Object... args) throws BeansException {
   assertBeanFactoryActive();
   return getBeanFactory().getBean(requiredType, args);
 }
 @Override
 public Object getBean(String name, Object... args) throws BeansException {
   assertBeanFactoryActive();
   return getBeanFactory().getBean(name, args);
 }
 @Override
 public <T> T getBean(String name, Class<T> requiredType) throws BeansException {
   assertBeanFactoryActive();
   return getBeanFactory().getBean(name, requiredType);
 }