diff --git a/pom.xml b/pom.xml index 86d4c1dd8..a531de8bd 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ SOFABoot Build - 3.21.0 + 3.22.0-SNAPSHOT ${revision} 1.6.7 diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/ReadinessCheckListener.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/ReadinessCheckListener.java index 8b5c86a14..8efd79618 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/ReadinessCheckListener.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/ReadinessCheckListener.java @@ -40,6 +40,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; @@ -71,11 +72,11 @@ public class ReadinessCheckListener implements ApplicationContextAware, Ordered, private boolean healthCheckerStatus = true; - private Map healthCheckerDetails = new HashMap<>(); + private Map healthCheckerDetails = new ConcurrentHashMap<>(); private boolean healthIndicatorStatus = true; - private Map healthIndicatorDetails = new HashMap<>(); + private Map healthIndicatorDetails = new ConcurrentHashMap<>(); private boolean healthCallbackStatus = true; private boolean readinessCheckFinish = false; diff --git a/sofa-boot-project/sofa-boot-core/startup-sofa-boot/src/main/java/com/alipay/sofa/startup/StartupReporter.java b/sofa-boot-project/sofa-boot-core/startup-sofa-boot/src/main/java/com/alipay/sofa/startup/StartupReporter.java index 6b8fcee80..357115845 100644 --- a/sofa-boot-project/sofa-boot-core/startup-sofa-boot/src/main/java/com/alipay/sofa/startup/StartupReporter.java +++ b/sofa-boot-project/sofa-boot-core/startup-sofa-boot/src/main/java/com/alipay/sofa/startup/StartupReporter.java @@ -52,15 +52,23 @@ public class StartupReporter { public static final String SPRING_CONTEXT_BEAN_FACTORY_POST_PROCESSOR = "spring.context.bean-factory.post-process"; + public static final String SPRING_BEAN_POST_PROCESSOR = "spring.context.beans.post-process"; + + public static final String SPRING_CONFIG_CLASSES_ENHANCE = "spring.context.config-classes.enhance"; + public static final Collection SPRING_BEAN_INSTANTIATE_TYPES = new HashSet<>(); public static final Collection SPRING_CONTEXT_POST_PROCESSOR_TYPES = new HashSet<>(); + public static final Collection SPRING_CONFIG_CLASSES_ENHANCE_TYPES = new HashSet<>(); + static { SPRING_BEAN_INSTANTIATE_TYPES.add(SPRING_BEANS_INSTANTIATE); SPRING_BEAN_INSTANTIATE_TYPES.add(SPRING_BEANS_SMART_INSTANTIATE); SPRING_CONTEXT_POST_PROCESSOR_TYPES.add(SPRING_CONTEXT_BEANDEF_REGISTRY_POST_PROCESSOR); SPRING_CONTEXT_POST_PROCESSOR_TYPES.add(SPRING_CONTEXT_BEAN_FACTORY_POST_PROCESSOR); + SPRING_CONFIG_CLASSES_ENHANCE_TYPES.add(SPRING_CONFIG_CLASSES_ENHANCE); + SPRING_CONFIG_CLASSES_ENHANCE_TYPES.add(SPRING_BEAN_POST_PROCESSOR); } private final StartupStaticsModel startupStaticsModel = new StartupStaticsModel(); @@ -175,7 +183,9 @@ public List generateBeanStats(ConfigurableApplicationContext context) private boolean filterBeanInitializeByCost(BeanStat beanStat) { String name = beanStat.getBeanType(); - if (SPRING_BEAN_INSTANTIATE_TYPES.contains(name)) { + if (SPRING_BEAN_INSTANTIATE_TYPES.contains(name) + || SPRING_CONTEXT_POST_PROCESSOR_TYPES.contains(name) + || SPRING_CONFIG_CLASSES_ENHANCE_TYPES.contains(name)) { return beanStat.getCost() >= beanInitCostThreshold; } else { return true; diff --git a/sofa-boot-project/sofa-boot/src/main/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreator.java b/sofa-boot-project/sofa-boot/src/main/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreator.java index cc8f1f8ec..7c2ee76a2 100644 --- a/sofa-boot-project/sofa-boot/src/main/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreator.java +++ b/sofa-boot-project/sofa-boot/src/main/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreator.java @@ -20,6 +20,7 @@ import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.PatternMatchUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -51,7 +52,7 @@ public void setExcludeBeanNames(String... beanNames) { Assert.notEmpty(beanNames, "'excludeBeanNames' must not be empty"); this.excludeBeanNames = new ArrayList<>(beanNames.length); for (String mappedName : beanNames) { - this.excludeBeanNames.add(mappedName.strip()); + this.excludeBeanNames.add(StringUtils.trimWhitespace(mappedName)); } } diff --git a/sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTests.java b/sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTest.java similarity index 97% rename from sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTests.java rename to sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTest.java index ba9fd9fd9..083e0aa20 100644 --- a/sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTests.java +++ b/sofa-boot-project/sofa-boot/src/test/java/com/alipay/sofa/boot/aop/framework/autoproxy/ExcludeBeanNameAutoProxyCreatorTest.java @@ -18,7 +18,7 @@ import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; -import org.junit.jupiter.api.Test; +import org.junit.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -34,7 +34,7 @@ * @author huzijie * @version ExcludeBeanNameAutoProxyCreatorTests.java, v 0.1 2024年01月04日 4:36 PM huzijie Exp $ */ -public class ExcludeBeanNameAutoProxyCreatorTests { +public class ExcludeBeanNameAutoProxyCreatorTest { @Test public void excludeBeanNames() {