Add shortcuts for elements with no annotations
Improve the performance of the `getMergedAnnotationAttributes` and `isAnnotated` methods in `AnnotatedElementUtils` by returning immediately when the element had no annotations. Issue: SPR-13621
This commit is contained in:
parent
ce64761069
commit
1733d0111d
|
@ -201,6 +201,9 @@ public class AnnotatedElementUtils {
|
||||||
Assert.notNull(element, "AnnotatedElement must not be null");
|
Assert.notNull(element, "AnnotatedElement must not be null");
|
||||||
Assert.hasLength(annotationName, "annotationName must not be null or empty");
|
Assert.hasLength(annotationName, "annotationName must not be null or empty");
|
||||||
|
|
||||||
|
if (element.getAnnotations().length == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return Boolean.TRUE.equals(searchWithGetSemantics(element, annotationName, new SimpleAnnotationProcessor<Boolean>() {
|
return Boolean.TRUE.equals(searchWithGetSemantics(element, annotationName, new SimpleAnnotationProcessor<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public Boolean process(AnnotatedElement annotatedElement, Annotation annotation, int metaDepth) {
|
public Boolean process(AnnotatedElement annotatedElement, Annotation annotation, int metaDepth) {
|
||||||
|
@ -331,6 +334,9 @@ public class AnnotatedElementUtils {
|
||||||
public static AnnotationAttributes getMergedAnnotationAttributes(AnnotatedElement element, String annotationName,
|
public static AnnotationAttributes getMergedAnnotationAttributes(AnnotatedElement element, String annotationName,
|
||||||
boolean classValuesAsString, boolean nestedAnnotationsAsMap) {
|
boolean classValuesAsString, boolean nestedAnnotationsAsMap) {
|
||||||
|
|
||||||
|
if (element.getAnnotations().length == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
AnnotationAttributes attributes = searchWithGetSemantics(element, annotationName,
|
AnnotationAttributes attributes = searchWithGetSemantics(element, annotationName,
|
||||||
new MergedAnnotationAttributesProcessor(annotationName, classValuesAsString, nestedAnnotationsAsMap));
|
new MergedAnnotationAttributesProcessor(annotationName, classValuesAsString, nestedAnnotationsAsMap));
|
||||||
AnnotationUtils.postProcessAnnotationAttributes(element, attributes, classValuesAsString, nestedAnnotationsAsMap);
|
AnnotationUtils.postProcessAnnotationAttributes(element, attributes, classValuesAsString, nestedAnnotationsAsMap);
|
||||||
|
|
Loading…
Reference in New Issue