@Override
 public void postProcessMergedBeanDefinition(
     RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) {
   super.postProcessMergedBeanDefinition(beanDefinition, beanType, beanName);
   if (beanType != null) {
     InjectionMetadata metadata = findResourceMetadata(beanName, beanType);
     metadata.checkConfigMembers(beanDefinition);
   }
 }
  @Override
  public PropertyValues postProcessPropertyValues(
      PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName)
      throws BeansException {

    InjectionMetadata metadata = findResourceMetadata(beanName, bean.getClass());
    try {
      metadata.inject(bean, beanName, pvs);
    } catch (Throwable ex) {
      throw new BeanCreationException(beanName, "Injection of resource dependencies failed", ex);
    }
    return pvs;
  }