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

b4wnujal  于 2022-10-07  发布在  Spring
关注(0)|答案(4)|浏览(250)

在IntelliJ上,我得到了一个Spring Boot配置注解处理器未配置的@ConfigurationProperties。下面是我的班级:

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

我不确定这是什么原因,当我点击设置扳手时,我看不到对元数据文件进行配置的任何选项。

qxsslcnc

qxsslcnc1#

我通过将以下依赖项添加到我的POM文件解决了这个问题

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

oipij1gg2#

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

1.https://stackoverflow.com/a/48028193/9989732
1.https://stackoverflow.com/a/64031211/9989732

完整配置:

<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>
6ljaweal

6ljaweal3#

通过使用Spring-boot-configuration-处理器JAR,您可以轻松地从用@ConfigurationProperties注解的项生成自己的配置元数据文件。JAR包含一个Java注解处理器,在编译项目时会调用该处理器。要使用该处理器,只需包含一个可选的依赖项,例如,对于Maven,您可以添加:

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

nhhxz33t4#

对于Gradle,像Maven一样,我们需要添加相应的annotation processor。为此,请在build.gradle文件中的dependencies部分添加一行。

dependencies {
    ...
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor:'
    ...
}

相关问题