我想将属性转换为地图,见下文
field2ZhNameMap.platform=平台
==>
private Map<String,String> field2ZhNameMap;
在Spring启动1.5.6启动应用程序在tomcat中没关系,但是使用sprint启动2.0.0.M7在tomcat中启动应用程序我得到以下错误
Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.foo.bar.util.Field2ZhNameProperties
at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:227)
Caused by: java.lang.IllegalArgumentException: PropertyName must not be empty
at org.springframework.util.Assert.hasLength(Assert.java:233)
at org.springframework.boot.origin.PropertySourceOrigin.<init>(PropertySourceOrigin.java:41)
在对源代码进行调试后,我发现在tomcat中启动了应用程序,它有JndiPropertySource
导致上述问题。所以我必须通过JndiPropertySource
明确禁用specify spring.jndi.ignore=true in a spring.properties
来解决此问题。
另外我发现像Binder
这样的类在1.5.6中不存在,它似乎从1.5.6到2.0.0有很大的变化。所以我想知道是否有一些文档记录了这些更改并指导如何在spring boot 2中正确映射属性到java类?
答案 0 :(得分:0)
对我来说,升级到Tomcat上的Spring Boot 2.0.1.RELEASE
8.5.30
已解决PropertyName must not be empty