无法解析配置属性'...
我可以通过@Value注解或自动连接环境访问我的属性。但是我自己定义的所有属性在IDEA中都会收到这个警告。我应该怎么做,才能让我的想法识别这些东西,而不是打扰我?
发布于 2018-06-10 00:36:57
为了让IntelliJ IDEA知道您的Spring Boot属性,您可以在项目中定义Spring Boot配置元数据。
选项1:
如果可以对属性使用@ConfigurationProperties
-annotated类,则可以将Spring Boot配置注释处理器添加到类路径中,IntelliJ IDEA将在target
或out
中为您生成配置元数据
Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Gradle:
implementation 'org.springframework.boot:spring-boot-configuration-processor'
选项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"
}
]
}
选项1和2:
在构建系统(Maven/Gradle)的IntelliJ IDEA工具窗口中,单击“刷新”按钮。
从菜单中选择Build > Rebuild Project
。
如果警告仍然出现,您可以尝试重新启动IDE。选择File > Invalidate Caches / Restart
并单击Invalidate and Restart
。
发布于 2019-12-24 19:14:52
plugins {
kotlin("jvm")
kotlin("kapt")
}
/* ... */
dependencies {
val configurationProcessor ="org.springframework.boot:spring-boot-configuration-processor:${BuildConstants.springBootVersion}"
kapt(configurationProcessor) // for jar
kaptTest(configurationProcessor) // for jar
annotationProcessor(configurationProcessor) // for IntelliJ Idea
}
/* ... */
kapt {
annotationProcessor("org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor")
}
/* ... */
tasks {
withType<KotlinCompile> {
dependsOn(processResources)
}
}
Kotlin Kapt是使用元数据和内存所必需的。
Spring Boot Configuration Processor从official Spring documentation生成带有属性元数据的特殊json文件。
因此,要使用属性语法突出显示来分发jar
,您需要:
jar
打包之前使用dependsOn
生成文件(不确定,我上面的代码是最有效的解决方案,但问题已经解决)然而,IntelliJ Idea适用于annotationProcessor
Gradle配置(不幸的是,我没有确切的答案,为什么它需要确切的答案)。
发布于 2020-06-23 20:02:25
我也遇到了同样的问题,加上没有显示自动补全功能,我发现它适用于IntelliJ旗舰版,而不是社区版。link
可以采取的几个有用的步骤是:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
要从dependencies.
@EnableConfigurationProperties(NameOfTheConfigClass.class)
,请刷新
target/classes/META-INF/spring-configuration-metadata.js
确保您的配置类已使用@ConfigurationProperties("name-here")
注释,并且您已通过Maven将其启用https://stackoverflow.com/questions/48954087
复制相似问题