diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java index 99eb8f50204..bbbf6cce509 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java @@ -541,23 +541,12 @@ public class RootBeanDefinition extends AbstractBeanDefinition { if (isExternallyManagedInitMethod(initMethod)) { return true; } - if (this.externallyManagedInitMethods != null) { - for (String candidate : this.externallyManagedInitMethods) { - int indexOfDot = candidate.lastIndexOf('.'); - if (indexOfDot >= 0) { - String methodName = candidate.substring(indexOfDot + 1); - if (methodName.equals(initMethod)) { - return true; - } - } - } - } - return false; + return hasAnyExternallyManagedMethod(this.externallyManagedInitMethods, initMethod); } } /** - * Return all externally managed initialization methods (as an immutable Set). + * Get all externally managed initialization methods (as an immutable Set). *
See {@link #registerExternallyManagedInitMethod} for details
* regarding the format for the initialization methods in the returned set.
* @since 5.3.11
@@ -627,19 +616,23 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
if (isExternallyManagedDestroyMethod(destroyMethod)) {
return true;
}
- if (this.externallyManagedDestroyMethods != null) {
- for (String candidate : this.externallyManagedDestroyMethods) {
- int indexOfDot = candidate.lastIndexOf('.');
- if (indexOfDot >= 0) {
- String methodName = candidate.substring(indexOfDot + 1);
- if (methodName.equals(destroyMethod)) {
- return true;
- }
+ return hasAnyExternallyManagedMethod(this.externallyManagedDestroyMethods, destroyMethod);
+ }
+ }
+
+ private static boolean hasAnyExternallyManagedMethod(Set