我有以下代码和问题。我正在运行一个 Spring Boot 应用程序来测试 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 直接从应用程序属性文件中读取地图?
对此的任何帮助表示赞赏。提前致谢。