code: @Override
      protected BeanReactor<ApplicationContext> createStrategy() {
          if (getBeanName().isEmpty()) {
              return new AbstractProxyTargetLocator.BeanReactor<ApplicationContext>() {
                  public boolean containsBean(ApplicationContext applicationContext) {
                      try {
                          applicationContext.getBean(beanType);
                      } catch (NoSuchBeanDefinitionException e) {
                          return false;
                      }
                      return true;
                  }
  
                  public Object createBean(ApplicationContext applicationContext) {
                      return applicationContext.getBean(beanType);
                  }
              };
          }
          if (overwrites == null || overwrites.size() == 0 || !overwrites.containsKey(getBeanName())) {
              return new AbstractProxyTargetLocator.BeanReactor<ApplicationContext>() {
                  public boolean containsBean(ApplicationContext applicationContext) {
                      return applicationContext.containsBean(getBeanName());
                  }
  
                  public Object createBean(ApplicationContext applicationContext) {
                      return applicationContext.getBean(getBeanName(), beanType);
                  }
              };
          }
          return new AbstractProxyTargetLocator.BeanReactor<ApplicationContext>() {
              public boolean containsBean(ApplicationContext applicationContext) {
                  return applicationContext.containsBean(overwrites.get(getBeanName()));
              }
  
              public Object createBean(ApplicationContext applicationContext) {
                  return applicationContext.getBean(overwrites.get(getBeanName()), beanType);
              }
          };
      }
docs: {@inheritDoc}