如何在IntelliJ中使用@ConfigurationProperties为Spring Boot配置注解处理器进行配置?

17

警告

在IntelliJ中,我使用@ConfigurationProperties注解时遇到Spring Boot配置注解处理器未配置的问题。以下是我的类:

@Configuration
@ConfigurationProperties(prefix = "abc")
@Data
@RefreshScope
class Config {
    String propA;
    String propB;
    ...
}

我不确定是什么原因导致这种情况,当我点击设置的扳手时,我没有看到任何为元数据文件配置的选项。


但是当你运行它时,它会导致应用程序崩溃吗?我在IntelliJ中经常看到这个错误,但对我没有造成问题。 - Makoto
这个回答解决了你的问题吗?@ConfigurationProperties Spring Boot配置注解处理器在类路径中找不到 - Simon Martinelli
4个回答

10

我遇到了相同的问题,使用的是 IntelliJ IDEA 2020.2Maven 3.6.2。解决方案是在 maven-compiler-plugin 的设置中显式地设置注释处理器。我在这里找到了答案:

  1. https://dev59.com/VFwX5IYBdhLWcg3wtBXG#48028193
  2. https://dev59.com/S1gQ5IYBdhLWcg3wYzDy#64031211

完整的配置如下:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <version>2.4.2</version>
  <optional>true</optional>
</dependency>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <encoding>UTF-8</encoding>
    <annotationProcessorPaths>
      <path>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <version>2.4.2</version>
      </path>
      <path>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.8</version>
      </path>
    </annotationProcessorPaths>
  </configuration>
</plugin>

6
我通过在我的POM文件中添加以下依赖项来解决了这个问题。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <version>2.2.6.RELEASE</version>
    <optional>true</optional>
</dependency>

0
对于Gradle,就像Maven一样,我们需要添加适当的注释处理器。为此,请在您的build.gradle文件的dependencies部分中添加一行代码。
dependencies {
    ...
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor:'
    ...
}

0
您可以使用spring-boot-configuration-processor jar从带有@ConfigurationProperties注释的项目中轻松生成自己的配置元数据文件。该jar包括一个Java注释处理器,在编译您的项目时调用。要使用处理器,只需将spring-boot-configuration-processor作为可选依赖项包含在内,例如使用Maven,您可以添加:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接