diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericTypeAwareAutowireCandidateResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericTypeAwareAutowireCandidateResolver.java index 8b62873e1d..65554ce9b5 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericTypeAwareAutowireCandidateResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericTypeAwareAutowireCandidateResolver.java @@ -106,12 +106,10 @@ public class GenericTypeAwareAutowireCandidateResolver implements AutowireCandid } } } - if (targetType == null) { + if (targetType == null || (descriptor.fallbackMatchAllowed() && targetType.hasUnresolvableGenerics())) { return true; } - if (descriptor.fallbackMatchAllowed() && targetType.hasUnresolvableGenerics()) { - return descriptor.getDependencyType().isAssignableFrom(targetType.getRawClass()); - } + // Full check for complex generic type match... return dependencyType.isAssignableFrom(targetType); }