application.properties 中的 SpringBoot 未知 属性

SpringBoot unknown property in application.properties

我使用嵌入式 Tomcat + Thymeleaf 模板引擎,使用 Spring Initializr 生成了 Spring Boot web 应用程序。

我把这个 属性 放在我的 application.properties

default.to.address=nunito.calzada@gmail.com

我正在使用 Spring Tool Suite Version: 3.8.4.RELEASE 作为开发环境,但我在编辑器中收到此警告 'default.to.address' is an unknown property.

我应该把这个 属性 放在另一个 属性 文件中吗?

这是因为它是由 STS 属性编辑器打开的,该编辑器除其他外还验证属性。将它放在 application.properties 文件中没有什么坏处,您甚至可以为 属性 添加自己的元数据。

http://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html

我用这个方法在文件application.properties.

中添加属性

在 application.properties 中添加新的 属性 : default.to.address=nunito.calzada@gmail.com 将鼠标悬停在新的 属性 上,您会看到一个“快速修复工具提示”,建议您添加新的 属性:为 'default.to.address' 创建元数据。

然后,浏览 class 和要将 属性 绑定到的字段并添加此注释:

@Value("${default.to.address}")
private String address;

现在您的对象字段的值应为 属性。

您应该尝试在环境中添加这些类型的值,而不是 application.properties,因为您可以选择随时更新这些值而无需进行编译更改/重新部署更改。 application.properties 对于您永远不会更改的属性(如数据库凭据)可能更有用。

我在 application.properties 中也遇到了同样的警告,正在寻找摆脱它的方法。寻找答案让我来到这里。所以我发布了我的答案;它可能有用。

在 application.properties 中使用您的自定义属性没有任何坏处。有两种方法可以摆脱这种情况 -

  1. 如其中一个答案所述,您可以为自定义属性添加元数据(手动或使用 STS 中的快速修复)。

  2. 如果你不想添加元数据,那么在STS中,进入Window -> preferences -> spring -> boot -> properties editor .这里,select'unknown property'为忽略。默认是警告。

您需要使用 spring-boot-configuration-processor,它会为您生成配置元数据。

看例子:https://www.baeldung.com/spring-boot-configuration-metadata