diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ReplaceOverride.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ReplaceOverride.java index 957d3d17795..b3eb9b9e64d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ReplaceOverride.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ReplaceOverride.java @@ -69,28 +69,22 @@ public class ReplaceOverride extends MethodOverride { this.typeIdentifiers.add(identifier); } - @Override public boolean matches(Method method) { - // TODO could cache result for efficiency if (!method.getName().equals(getMethodName())) { - // It can't match. return false; } - if (!isOverloaded()) { - // No overloaded: don't worry about arg type matching. + // Not overloaded: don't worry about arg type matching... return true; } - - // If we get to here, we need to insist on precise argument matching. + // If we get here, we need to insist on precise argument matching... if (this.typeIdentifiers.size() != method.getParameterTypes().length) { return false; } for (int i = 0; i < this.typeIdentifiers.size(); i++) { String identifier = this.typeIdentifiers.get(i); if (!method.getParameterTypes()[i].getName().contains(identifier)) { - // This parameter cannot match. return false; } } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java b/spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java index 324b4af1f15..52ae4474934 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/BeanMethodPolymorphismTests.java @@ -250,7 +250,7 @@ public class BeanMethodPolymorphismTests { return "regular"; } - @Bean + @Bean @Lazy String aString(Integer dependency) { return "overloaded" + dependency; }