From 1dc2177a4af5c6ff8622017b9a79cecba1d8c635 Mon Sep 17 00:00:00 2001 From: GungnirLaevatain Date: Thu, 8 Aug 2019 23:14:29 +0800 Subject: [PATCH] Avoid unnecessary processing in ApplicationContextAwareProcessor This commit avoids unnecessary processing in the implementation of postProcessBeforeInitialization() in ApplicationContextAwareProcessor by immediately returning the supplied bean if it does not meet the requirements for further processing. Closes gh-23435 --- .../support/ApplicationContextAwareProcessor.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java b/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java index 563803cd090..4847f31248c 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java @@ -77,12 +77,16 @@ class ApplicationContextAwareProcessor implements BeanPostProcessor { @Override @Nullable public Object postProcessBeforeInitialization(final Object bean, String beanName) throws BeansException { + + if (!(bean instanceof EnvironmentAware || bean instanceof EmbeddedValueResolverAware || + bean instanceof ResourceLoaderAware || bean instanceof ApplicationEventPublisherAware || + bean instanceof MessageSourceAware || bean instanceof ApplicationContextAware)){ + return bean; + } + AccessControlContext acc = null; - if (System.getSecurityManager() != null && - (bean instanceof EnvironmentAware || bean instanceof EmbeddedValueResolverAware || - bean instanceof ResourceLoaderAware || bean instanceof ApplicationEventPublisherAware || - bean instanceof MessageSourceAware || bean instanceof ApplicationContextAware)) { + if (System.getSecurityManager() != null ) { acc = this.applicationContext.getBeanFactory().getAccessControlContext(); }