现在有如下配置,需要绑定到java类中使用:
my-configuration:
name: spring
inner-config:
inner-name: inner-spring
方式一
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @Component : 将配置类加入到spring容器,才能够实现配置绑定
*
* @ConfigurationProperties : 标志着这个类中的属性是从配置文件中读取过来的
* value = prefix : 此类的配置在配置文件中的前缀
*/
@Data
@Component
@ConfigurationProperties("my-configuration")
public class MyConfiguration {
private String name;
private InnerConfig innerConfig;
@Data
public static class InnerConfig{
private String innerName;
}
}
方式二
使用场景:如果绑定配置的类是第三方包中的,那么无法去修改源码加上@Component注解,这个时候就需要下面这种方式。
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
//@Component
@ConfigurationProperties("my-configuration")
public class MyConfiguration {
private String name;
private InnerConfig innerConfig;
@Data
public static class InnerConfig{
private String innerName;
}
}
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@Configuration
// @EnableConfigurationProperties : 指定使用类来绑定配置文件中的配置
@EnableConfigurationProperties(MyConfiguration.class)
public class MyConfig {
}
配置自动提示
1、pom.xml中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2、重新编译项目
发现自定义的配置已经有了提示
版权声明:本文为weixin_42425970原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。