首页 > 社交 > 科普中国

自定义的配置文件,如何注入到SpringBoot?

常驻编辑 科普中国 2022-09-24 注解   变量   加载   定义   对象   参数   方式   环境   文件   项目
ROK拜客生活常识网

@RestController
public class HelloController {
    
    @Value("${config.name}")
    private String config;

    @GetMapping("config")
    public String config(){
        return JSON.toJSONString(config);
    }
}

使用@value注解注入配置,通常情况下有个要求就是,注解里面的变量,必须在application.properties文件里面事先定义好,否则启动报错!ROK拜客生活常识网

当然,如果我们不想让它抱错,我们可以给它一个缺省值xxx,比如:ROK拜客生活常识网

@Value("${config.name:xxx}")
private String config;

这样,SpringBoot 项目在启用时不会报错!ROK拜客生活常识网

2.2、通过@ConfigurationProperties注解实现参数加载ROK拜客生活常识网

某些场景下,@value注解并不能满足我们所有的需求,比如参数配置的数据类型是一个对象或者数组,这个时候才用@ConfigurationProperties会是一个比较好的选择!ROK拜客生活常识网

  • 配置一个对象类型的参数

例如在application.properties文件里,当我们想配置一个对象类型的参数,我们可以这样操作!ROK拜客生活常识网

//参数定义
config2.name=demo_1
config2.value=demo_value_1

然后,创建一个配置类Config2,用于将定义的变量映射到配置类里面。ROK拜客生活常识网

@Component
@ConfigurationProperties(prefix = "config2")
public class Config2 {

    public String name;

    public String value;

    //...get、set
}

读取数据的方式,也很简单,直接注入到对应的类里面就可以了ROK拜客生活常识网

@RestController
public class HelloController {
    
    @Autowired
    private Config2 config2;

    @GetMapping("config2")
    public String config2(){
        return JSON.toJSONString(config2);
    }
}
  • 配置一个Map类型的参数

例如在application.properties文件里,当我们想配置一个 Map 类型的参数,我们可以这样操作!ROK拜客生活常识网

//参数定义
config3.map1.name=demo_id_1_name
config3.map1.value=demo_id_1_value
config3.map2.name=demo_id_2_name
config3.map2.value=demo_id_2_value

然后,创建一个配置类Config3,用于将定义的变量映射到配置类里面。ROK拜客生活常识网

@Component
@ConfigurationProperties(prefix = "config3")
public class Config3 {

    private Map map1 = new HashMap    

相关阅读:

  • 分支信息注释
  • Spring
  • 抄书第十六天,今天你微笑了吗
  • 一波带走,SpringBoot
  • 最真实的注解,值得永久收藏
  • 道德经第四十六章原文及注解 第十四章道德经解释 道德
  • Eureka源码3
  • SpringCloudAlibaba
  • Mybatis框架使用(一)
  • 八月的最后一个星期天,我“奢侈”了
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。