docs: protected @Nonnull <T> T inject(@Nonnull BeanResolutionContext resolutionContext, @Nullable BeanDefinition requestingBeanDefinition, @Nonnull T instance) {
          @SuppressWarnings("unchecked") Class<T> beanType = (Class<T>) instance.getClass();
          Optional<BeanDefinition<T>> concreteCandidate = findConcreteCandidate(beanType, null, false, true);
          if (concreteCandidate.isPresent()) {
              BeanDefinition definition = concreteCandidate.get();
              if (requestingBeanDefinition != null && requestingBeanDefinition.equals(definition)) {
                  // bail out, don't inject for bean definition in creation
                  return instance;
              }
              doInject(resolutionContext, instance, definition);
          }
          return instance;
      }