@Override
    public Object postProcessAfterInitialization(Object bean, String beanName)
      throws BeansException {
      if (bean instanceof FactoryBean) {
        return bean;
      }
      if (this.earlySpyReferences.remove(getCacheKey(bean, beanName)) != bean) {
        return this.spockMockPostprocessor.createSpyIfNecessary(bean, beanName);
      }
      return bean;
    }
{@link BeanPostProcessor} to handle {@link SpringSpy} definitions. Registered as a
separate processor so that it can be ordered above AOP post processors.
spock-spring/src/main/java/org/spockframework/spring/mock/SpockMockPostprocessor.java