Java 使用@Value将属性文件中的值注入@Configuration类

Java 使用@Value将属性文件中的值注入@Configuration类,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个值存储在resources目录中的application.properties文件中。我想将此值注入带有@Configuration注释的类中 @Configuration @RequiredArgsConstructor public class Xconfig { @Value("${x}") private final String x; } application.properties: x=hello 这适用于@Component/@服务类,但不适用于@

我有一个值存储在resources目录中的
application.properties
文件中。我想将此值注入带有
@Configuration
注释的类中

@Configuration
@RequiredArgsConstructor
public class Xconfig {

    @Value("${x}")
    private final String x;

}
application.properties:

x=hello
这适用于@Component/@服务类,但不适用于@Configuration。错误消息:

xConfig中构造函数的参数1需要一个bean 找不到类型为“java.lang.String”的


用自己的构造函数替换
@RequiredArgsConstructor
注释可以解决此问题

public Xconfig(@Value("${x}") final String x) {
    this.x = x;
}

String x
中删除
final
,或者手动声明构造函数(并删除
@RequiredArgsConstructor
)并将@Value附加到参数。此cdi与此有何关系?