mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Only use PropertySource.getValue() as a fallback
It converts everything to a String so it isn't helpful to use it as a default. Fixes gh-2891.
This commit is contained in:
parent
b54960f072
commit
efa7ad8370
@ -121,12 +121,15 @@ public class PropertySourcesPropertyValues implements PropertyValues {
|
||||
.contains(source.getName()) && !includes.matches(propertyName)) {
|
||||
continue;
|
||||
}
|
||||
Object value = source.getProperty(propertyName);
|
||||
Object value = null;
|
||||
try {
|
||||
value = resolver.getProperty(propertyName);
|
||||
value = resolver.getProperty(propertyName, Object.class);
|
||||
}
|
||||
catch (RuntimeException ex) {
|
||||
// Probably could not resolve placeholders, ignore it here
|
||||
if (value == null) {
|
||||
value = source.getProperty(propertyName);
|
||||
}
|
||||
}
|
||||
if (!this.propertyValues.containsKey(propertyName)) {
|
||||
this.propertyValues.put(propertyName, new PropertyValue(propertyName,
|
||||
|
@ -57,6 +57,17 @@ public class PropertySourcesPropertyValuesTests {
|
||||
.<String, Object> singletonMap("name", "${foo}")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTypesPreserved() {
|
||||
this.propertySources.replace(
|
||||
"map",
|
||||
new MapPropertySource("map", Collections.<String, Object> singletonMap(
|
||||
"name", 123)));
|
||||
PropertySourcesPropertyValues propertyValues = new PropertySourcesPropertyValues(
|
||||
this.propertySources);
|
||||
assertEquals(123, propertyValues.getPropertyValues()[0].getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSize() {
|
||||
PropertySourcesPropertyValues propertyValues = new PropertySourcesPropertyValues(
|
||||
|
Loading…
Reference in New Issue
Block a user