diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java index 3e0e744dcbb2..84d68e5dc9b2 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java @@ -422,10 +422,13 @@ protected void registerBeanDefinition(String beanName, Map map, String pre ConstructorArgumentValues cas = new ConstructorArgumentValues(); MutablePropertyValues pvs = new MutablePropertyValues(); + String prefixWithSep = prefix + SEPARATOR; + int beginIndex = prefix.length() + SEPARATOR.length(); + for (Map.Entry entry : map.entrySet()) { String key = StringUtils.trimWhitespace((String) entry.getKey()); - if (key.startsWith(prefix + SEPARATOR)) { - String property = key.substring(prefix.length() + SEPARATOR.length()); + if (key.startsWith(prefixWithSep)) { + String property = key.substring(beginIndex); if (CLASS_KEY.equals(property)) { className = StringUtils.trimWhitespace((String) entry.getValue()); } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java index d879b94fa082..2531a251b6fb 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java @@ -166,9 +166,10 @@ public MultiValueMap getAllAnnotationAttributes(String annotatio if (attributes == null) { return null; } + String annotatedElement = "class '" + getClassName() + "'"; for (AnnotationAttributes raw : attributes) { for (Map.Entry entry : AnnotationReadingVisitorUtils.convertClassValues( - "class '" + getClassName() + "'", this.classLoader, raw, classValuesAsString).entrySet()) { + annotatedElement, this.classLoader, raw, classValuesAsString).entrySet()) { allAttributes.add(entry.getKey(), entry.getValue()); } }