Spring Boot使用@ConfigurationProperties加载配置文件

Spring Boot开发中,一般会使用@Value注解和@ConfigurationProperties注解来加载配置信息

  • @Value(需要配合@Component):该注解的执行在java运行初始化的最后
  • @ConfigurationProperties:该注解初始化的时机是,凡是引用到该类的就会触发该注解

简单示例

(1)配置文件

spring:
  redis:
    host: 192.168.10.10
    port: 6379

(2)配置类

@Data
@Component
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
    private String host;
    private String port;
}

注:字段必须包含Setter方法

(3)初始化

@Slf4j
@Component
public class AppInit {
    @Autowired
    private RedisConfig redisConfig;

    @Bean
    public void initRedis() {
        log.info("Redis Host: " + redisConfig.getHost());
        log.info("Redis Port: " + redisConfig.getPort());
    }
}

静态引用

@ConfigurationProperties只会调用非静态的set方法,如需通过静态变量方式直接调用,需将Setter定义为非静态方法

(1)配置类

@Component
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
    public static String host;
    public static String port;

    public void setHost(String host) {
        RedisConfig.host = host;
    }

    public void setPort(String port) {
        RedisConfig.port = port;
    }
}

(2)初始化

@Slf4j
@Component
public class AppInit {
    @Bean
    public void initRedis() {
        log.info("Redis Host: " + RedisConfig.host);
        log.info("Redis Port: " + RedisConfig.port);
    }
}
上一篇 Spring Cloud Feign报错'xx.FeignClientSpecification', defined in null, could not be registered
下一篇 Spring Boot 2.X返回json数据中null字段不显示解决方法
目录
文章列表
1 Jenkins备份配置信息
Jenkins备份配置信息
2
Android NDK基础18:C++_构造函数_析构函数_拷贝构造函数
Android NDK基础18:C++_构造函数_析构函数_拷贝构造函数
3
JS控制浮点数输入正则
JS控制浮点数输入正则
4
Flutter在State类里获取Page类中的变量
Flutter在State类里获取Page类中的变量
5
Redlock:Redis分布式锁最牛逼的实现
Redlock:Redis分布式锁最牛逼的实现
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。