У меня есть код ниже и проблема. Я запускаю загрузочное приложение Spring для проверки использования файла application.properties.
файл application.properties,
server.port=8080
server.servlet.context-path=/HelloWorldBoot
myMap={key1:'value1',key2:'value2'}
Код контроллера ниже,
@RestController
public class MyController {
@Autowired
Environment env;
@Value("#{${myMap}}")
private HashMap<String,String> myMapUsingValue;
@GetMapping("/hello")
public String hello() {
System.out.println("myMapUsingValue : "+myMapUsingValue);
HashMap<String, String> myMapUsingEnv = env.getProperty("myMap", HashMap.class);
System.out.println("myMapUsingEnv : "+myMapUsingEnv);
return "Hello World";
}
}
Теперь, когда я нажимаю URL-адрес: http://localhost:8080/HelloWorldBoot/hello
Детали карты с использованием @Value успешно печатаются,
myMapUsingValue : {key1=value1, key2=value2}
Но я получаю сообщение об ошибке, как показано ниже, при доступе к той же карте с использованием Environment API,
No converter found capable of converting from type [java.lang.String] to type [java.util.HashMap<?, ?>]]
Как я могу решить эту проблему? Как я могу прочитать карту непосредственно из файла свойств приложения, используя API переменной среды?
Любая помощь приветствуется. Заранее спасибо.
myMap
будет загружен как строка, а не как карта - person Nicholas K   schedule 24.08.2018Map
, а не реализациюHashMap
- person akuma8   schedule 24.08.2018