/**
* @param targetMethod must be non-private and annotated with
* {@link ExternalBean}
*/
public Object processMethod(Method targetMethod) {
ExternalBean externalBean = AnnotationUtils.findAnnotation(targetMethod, ExternalBean.class);
Assert.notNull(externalBean, "method must be annotated with @ExternalBean");
Assert.isTrue(!Modifier.isPrivate(targetMethod.getModifiers()), "@ExternalBean methods may not be private");
String beanName;
if (!"".equals(externalBean.value()))
beanName = externalBean.value();
else
beanName = namingStrategy.getBeanName(targetMethod);
return owningBeanFactory.getBean(beanName);
}