排查点:

  1. 添加了 compileOnly('org.springframework.boot:spring-boot-configuration-processor') 依赖
  2. spring boot 启动类上添加了 @EnableConfigurationProperties 并指定了配置类
  3. 配置文件 application.properties 中配置了配置属性
  4. IDE 开启了 Annotation Processor

示例配置:

build.gradle

dependencies {
	compileOnly('org.springframework.boot:spring-boot-configuration-processor')
}

SpringBootApplication.java

@SpringBootApplication
@EnableConfigurationProperties({
	StorageProperties.class, 
	SecurityApiProperties.class
})
public class HospitalWebAgentApplication {
    public static void main(String[] args) {
        SpringApplication.run(HospitalWebAgentApplication.class, args);
    }
}

SecurityApiProperties .java

@ConfigurationProperties(prefix = "hospital.security")
public class SecurityApiProperties {

    private String baseUrl = "http://localhost:7070";
    /**
     * 登录接口
     */
    private String authApi;
    /**
     * 注册用户接口
     */
    private String signUpApi;
    /**
     * 退出登录
     */
    private String logoutApi;
    /**
     * 查询自己身份接口
     */
    private String meApi;

    public String getBaseUrl() {
        return baseUrl;
    }

    public void setBaseUrl(String baseUrl) {
        this.baseUrl = baseUrl;
    }

    public String getAuthApi() {
        return authApi;
    }

    public void setAuthApi(String authApi) {
        this.authApi = authApi;
    }

    public String getSignUpApi() {
        return signUpApi;
    }

    public void setSignUpApi(String signUpApi) {
        this.signUpApi = signUpApi;
    }

    public String getLogoutApi() {
        return logoutApi;
    }

    public void setLogoutApi(String logoutApi) {
        this.logoutApi = logoutApi;
    }

    public String getMeApi() {
        return meApi;
    }

    public void setMeApi(String meApi) {
        this.meApi = meApi;
    }
}

application.properties

hospital.security.base-url=http://localhost:7070
hospital.security.auth-api=${hospital.security.base-url}/auth/login
hospital.security.logout-api=${hospital.security.base-url}/auth/logout
hospital.security.me-api=${hospital.security.base-url}/user/{userId}
hospital.security.sign-up-api=${hospital.security.base-url}/user/signup

Annotation Processor

更多推荐

Re-run Spring Boot Configuration Annotation Processor to update generated metada