Java16引入了记录,这有助于在编写携带不可变数据的类时减少样板代码。当我试着用一张唱片 @ConfigurationProperties
如下所示,我得到以下错误消息:
@ConfigurationProperties("demo")
public record MyConfigurationProperties(
String myProperty
) {
}
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.example.demo.MyConfigurationProperties required a bean of type 'java.lang.String' that could not be found.
如何使用记录作为 @ConfigurationProperties
?
1条答案
按热度按时间7dl7o3gd1#
回答我自己的问题。
上面的错误是由于springboot由于缺少无参数构造函数而无法构造bean引起的。记录隐式声明一个构造函数,每个成员都有一个参数。
Spring Boot允许我们使用
@ConstructorBinding
通过构造函数而不是setter方法启用属性绑定的注解(如文档和对这个问题的回答中所述)。这也适用于记录,所以这适用于: