枚举
public enum Property { A, AB, ABC; }
领域
@Value("${custom.property}") protected Property property;
application.properties (小写)
custom.property=abc
运行应用程序时出现错误:
无法将[java.lang.String]类型的值转换为所需的[com.xxx.Property]类型:找不到匹配的编辑器或转换策略。
而(大写):
custom.property=ABC
工作良好。
有没有办法绑定不区分大小写的值?像 ABC , Abc , AbC , abc 一样,任何模式都应该起作用。
注意:我看到了这个问题-Spring 3.0 MVC绑定枚举区分大小写,但就我而言,我有10个以上的枚举/值(并希望有更多)类,并且要实现10个不同的自定义属性绑定器会很痛苦,我需要一些通用的解决方案。
@Value和@ConfigurationProperties功能不匹配。我无法承受足够的压力@ConfigurationProperties。
@Value
@ConfigurationProperties
首先,您可以在一个简单的POJO中设计您的配置,该POJO可以注入到您想要的任何位置(而不是在批注中包含易于被拼写错误打断的表达式)。其次,元数据支持意味着您可以 非常轻松地 在IDE中为自己的密钥自动完成。
最后,文档中描述的宽松绑定仅适用于@ConfigurationProperties。@Value是Spring Framework的功能,并且没有意识到宽松的绑定。我们打算在文档中更清楚地说明这一点。
TL; DR abc可以使用,@ConfigurationProperties但不能使用@Value。
abc