У меня есть файл конфигурации YAML с картой свойств:
properties:
a.b.c: 1
Boot проанализирует это как:
{a:{b:{c:1}}}
Однако я хочу:
{'a.b.c': 1}
Есть ли способ заставить его перейти в ключевой режим? Цитирование ключа, похоже, не помогает.
Обновлять
Фактический пример ниже.
Ява
import static com.google.common.collect.Maps.newLinkedHashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import lombok.Data;
import lombok.val;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties("hadoop")
public class HadoopProperties {
private Map<Object, Object> properties = newLinkedHashMap();
}
YAML
application.yml
:
hadoop:
properties:
fs.defaultFS: hdfs://localhost:8020
mapred.job.tracker: localhost:8021
Результат
Вызов toString()
для полученного объекта:
HadoopProperties (свойства = {fs = {defaultFS = hdfs: // localhost: 8020}, mapred = {job = {tracker = localhost: 8021}}})
{a:{b:{c:1}}}
. Обычное использование YAML в Spring Boot сводит его кProperties
, поэтому он будет только на один уровень. Вы можете показать код? - person Dave Syer   schedule 29.04.2014Map<String,String>
илиProperties
? - person Dave Syer   schedule 29.04.2014Map<String, Object>
, но не сProperties
. Спасибо за указатель! - person btiernay   schedule 29.04.2014