• springboot读取配置文件


    在springboot工程中读取配置文件常见两种形式

    @value:

    这种形式比较简单,只需要在application.yml中用名称相同的变量配置值即可,在对应bean中用@value标注对应变量。 调用简单,但是功能不强,对复杂数据结构例如list,map,list<map>等形式就配置起来较为复杂

    ConfigurationProperties方式:

    这种方式可以读取array,list,map,单值,及其组合。相应的配置也较为复杂。 首先在application.yml中添加相关配置

    config-attributes:
      value: 345                          #对应单个值
      valueArray: 1,2,3,4,5,6,7,8,9      #对应数组
      valueList:                         #对应list
        -13579
        -246810
      valueMap:                          #对应map
        name: lili
        age: 20
        sex: female
      valueMapList:                      #对应list<map>
        - name: bob
          age: 21
        - name: caven
          age: 31
    复制代码

    然后主类中添加注解@ConfigurationProperties

    @SpringBootApplication
    @ConfigurationProperties
    public class Configtest1Application {
    	public static void main(String[] args) {
    		SpringApplication.run(Configtest1Application.class, args);
    	}
    }
    复制代码

    注意需要再pom中添加依赖(我用 的时springboot2.0.2版本,网上有人用其他版本的,据说可以不添加这个依赖)

    <dependency>
            <groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-configuration-processor</artifactId>
    	<optional>true</optional>
    </dependency>
    复制代码

    然后我们需要一个专用的bean来读取这个配置。

    @Component
    @Getter
    @Setter
    @ConfigurationProperties(prefix = "config-attributes")
    @ToString
    public class Config {
        private String value;
        private String[] valueArray;
        private List<String> valueList;
        private HashMap<String, String> valueMap;
        private List<Map<String, String>> valueMapList;
    }
    
    复制代码

    其中的value,valuelist,valuemap分别对应配置文件中的相关内容
    注意@ConfigurationProperties(prefix = "config-attributes")中的config-attributes 对应application.yml中的前缀。
    随后再我们需要使用配置的值的地方,注入这个bean即可

    @RestController
    public class ConfigController {
    
        @Autowired
        private Config config;
    
        @GetMapping("/config")
        public String getConfig() {
            return config.toString();
        }
    }

    作者:红烧鲤鱼
    链接:https://juejin.im/post/5b0440a5f265da0b886dc2e9
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    LogMiner日志分析工具的使用
    V$SQL%知多少之二(V$SQL_PLAN)
    k8s中prometheus监控k8s外mysql
    mysql5.7下载
    【整理】Linux:set eux
    简单快速使用阿里云镜像仓库
    skywalking安装及使用(非容器版)
    建库、建表、造数据(微服务实战项目部分示例)
    常用环境变量配置(vim /etc/profile)
    Docker 容器默认root账号运行,很不安全!
  • 原文地址:https://www.cnblogs.com/matd/p/11156820.html
Copyright © 2020-2023  润新知