关于spring boot 2

时间:2018-02-13 02:24:21

标签: spring-boot

我想将属性转换为地图,见下文

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类?

1 个答案:

答案 0 :(得分:0)

对我来说,升级到Tomcat上的Spring Boot 2.0.1.RELEASE 8.5.30已解决PropertyName must not be empty