添加依赖
来源于官方文档 SpringBoot 1.5.9 #configuration-metadata-annotation-processor
发现SpringBoot2 中不添加这个依赖也能正常运行 , 但是在写yml时IDEA不能智能提示, 然后会警告依赖缺失
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Gradle
需要配置额外的插件
buildscript {
repositories {
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath 'io.spring.gradle:propdeps-plugin:0.0.9.RELEASE'
}
}
// ...
configure(allprojects) {
apply plugin: 'propdeps'
apply plugin: 'propdeps-maven'
apply plugin: 'propdeps-idea'
apply plugin: 'propdeps-eclipse'
}
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
compileJava.dependsOn(processResources)
配置
person:
age:
name: king
配置对应类
@Data // lombok插件
@Component
@ConfigurationProperties(prefix = "person")
public class MainConfig {
private int age;
private String name;
}
SpringBoot配置类
@Configuration
@EnableConfigurationProperties(MainConfig.class)
class AutoConfigProperties {
}
使用
直接将配置对应的类注入到要用的地方即可
实验
Java+Maven
采用上面的maven方式进行配置即可正常使用
Java+Gradle
配置成功,不报错,但是bean的属性全是空
Groovy+Gradle
配置成功,不报错,但是bean属性全为空 而且不能使用@Value,会报错,编译不通过
Groovy+Maven
配置成功,不报错,但是bean属性全为空 而且不能使用@Value,会报错,编译不通过
Java+Groovy+Maven
终于成功了,配置文件对应类采用Java其他的采用Groovy,构建工具用maven就能正常使用了
所以以上到底是因为什么。。。。