Intellij IDEA抱怨无法解决弹簧启动属性,但它们工作正常

Sto*_*kid 44 spring intellij-idea spring-boot application.properties

在此输入图像描述

无法解析配置属性'...

通过@Value注释或通过自动装配的环境访问我的属性没有问题.但是我自己定义的所有属性都在IDEA中发出此警告.我应该怎么做才能让IDEA认识到这些而不是打扰我?

Igo*_*man 60

为了让IntelliJ IDEA知道您的Spring Boot属性,您可以在项目中定义Spring Boot配置元数据.

选项1:

如果可以@ConfigurationProperties为属性使用带注释的类,则可以将Spring Boot配置注释处理器添加到类路径中,IntelliJ IDEA将为您生成配置元数据targetout:

Maven的:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

摇篮:

implementation 'org.springframework.boot:spring-boot-configuration-processor'
Run Code Online (Sandbox Code Playgroud)

选项2:

自己创建配置元数据文件src/main/resources/META-INF/spring-configuration-metadata.json:

内容:

{
  "properties": [
    {
      "name": "myapp.someprop",
      "type": "java.lang.String"
    },
    {
      "name": "myapp.someintprop",
      "type": "java.lang.Integer"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

选项1和2:

在构建系统(Maven/Gradle)的IntelliJ IDEA工具窗口中,单击"刷新"按钮.

选择Build > Rebuild Project从菜单.

如果仍出现警告,则可以尝试重新启动IDE.选择File > Invalidate Caches / Restart并单击Invalidate and Restart.

  • 这正是我所需要的!我选择了2! (3认同)
  • 仅供参考。Spring参考&gt;附录B.配置元数据:https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html (2认同)
  • 从菜单中选择 Build &gt; Rebuild Project 解决了我的问题 (2认同)
  • 我强烈建议使用选项1(@ConfigurationProperties和注释处理器),因为它可以节省繁琐且易于出错的元数据文件手写。而且,在初始设置之后,它比@Value注释更容易使用。 (2认同)