Support for Common Annotations 1.1 Resource.lookup() attribute

Issue: SPR-13941
master
Juergen Hoeller 9 years ago
parent 268ebd7e89
commit b79e8a5cbc
  1. 9
      spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2015 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -140,6 +140,9 @@ import org.springframework.util.StringUtils;
public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor
implements InstantiationAwareBeanPostProcessor, BeanFactoryAware, Serializable { implements InstantiationAwareBeanPostProcessor, BeanFactoryAware, Serializable {
// Common Annotations 1.1 Resource.lookup() available? Not present on JDK 6...
private static final Method lookupAttribute = ClassUtils.getMethodIfAvailable(Resource.class, "lookup");
private static Class<? extends Annotation> webServiceRefClass = null; private static Class<? extends Annotation> webServiceRefClass = null;
private static Class<? extends Annotation> ejbRefClass = null; private static Class<? extends Annotation> ejbRefClass = null;
@ -604,7 +607,9 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean
} }
this.name = resourceName; this.name = resourceName;
this.lookupType = resourceType; this.lookupType = resourceType;
this.mappedName = resource.mappedName(); String lookupValue = (lookupAttribute != null ?
(String) ReflectionUtils.invokeMethod(lookupAttribute, resource) : null);
this.mappedName = (StringUtils.hasLength(lookupValue) ? lookupValue : resource.mappedName());
Lazy lazy = ae.getAnnotation(Lazy.class); Lazy lazy = ae.getAnnotation(Lazy.class);
this.lazyLookup = (lazy != null && lazy.value()); this.lazyLookup = (lazy != null && lazy.value());
} }

Loading…
Cancel
Save