Browse Source

Expose reflection metadata with ASM-driven method order

Issue: SPR-14505
pull/1276/head
Juergen Hoeller 9 years ago
parent
commit
0208198804
  1. 12
      spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java

12
spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java

@ -364,7 +364,17 @@ class ConfigurationClassParser { @@ -364,7 +364,17 @@ class ConfigurationClassParser {
try {
AnnotationMetadata asm =
this.metadataReaderFactory.getMetadataReader(original.getClassName()).getAnnotationMetadata();
beanMethods = asm.getAnnotatedMethods(Bean.class.getName());
Set<MethodMetadata> asmMethods = asm.getAnnotatedMethods(Bean.class.getName());
Set<MethodMetadata> reflectionMethods = beanMethods;
beanMethods = new LinkedHashSet<>();
for (MethodMetadata asmMethod : asmMethods) {
for (MethodMetadata reflectionMethod : reflectionMethods) {
if (reflectionMethod.getMethodName().equals(asmMethod.getMethodName())) {
beanMethods.add(reflectionMethod);
break;
}
}
}
}
catch (IOException ex) {
logger.debug("Failed to read class file via ASM for determining @Bean method order", ex);

Loading…
Cancel
Save