Eclipse 4.32+Spring3.3.2:application.properties未知属性提示无法消除
Eclipse提示Spring Boot配置属性未知,但项目运行正常
已完成以下Spring Boot配置属性绑定操作,项目启动时ApplicationStartupConfig可通过@Autowired正常注入使用,但Eclipse始终提示application.config.admin-role-name是未知属性:
- 在
application.properties中添加配置:application.config.admin-role-name=ADMIN - 在
build.gradle中添加依赖:dependencies { ... annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" } - 在项目启动类(*Application.java)上添加
@ConfigurationPropertiesScan注解 - 在某
@Configuration类上添加@EnableConfigurationProperties(ApplicationStartupConfig.class)注解 - 创建
ApplicationStartupConfig类:@Component @ConfigurationProperties(prefix = "application.config") public class ApplicationStartupConfig { private String adminRoleName; public String getAdminRoleName() { return adminRoleName; } public void setAdminRoleName(String adminRoleName) { this.adminRoleName = adminRoleName; } } - 执行Gradle清理、构建并刷新IDE的Gradle项目
解决方法
- 检查配置元数据文件是否生成:
执行gradle clean build后,查看项目build/classes/java/main/META-INF/spring-configuration-metadata.json文件,确认其中包含application.config.admin-role-name的配置元数据。如果文件不存在或无对应内容,重新执行compileJava任务触发注解处理器运行。 - 刷新Eclipse项目配置:
右键项目 → 选择「Gradle」→「Refresh Gradle Project」;或执行gradle eclipse命令重新生成Eclipse配置文件后重新导入项目。 - 调整配置类注解:
移除ApplicationStartupConfig类上的@Component注解——@EnableConfigurationProperties已负责将该类注册为Spring Bean,重复注解可能干扰元数据生成。修改后的类代码:@ConfigurationProperties(prefix = "application.config") public class ApplicationStartupConfig { private String adminRoleName; public String getAdminRoleName() { return adminRoleName; } public void setAdminRoleName(String adminRoleName) { this.adminRoleName = adminRoleName; } } - 更新Spring Tools插件:
确保Eclipse中安装的Spring Tools 4插件为最新版本,旧版本对配置元数据的识别可能存在bug。
内容的提问来源于stack exchange,提问作者Matilda Bentefor
相关产品推荐
相关产品推荐

