zoukankan      html  css  js  c++  java
  • 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
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    指针与数组的区别 —— 《C语言深度剖析》读书心得
    console ouput 与 重定向输出 效率对比
    First day in 阿里
    TestNG 使用入门教程
    Spring简单使用简介
    玩转Spring JUnit+mockito+powermock单元测试(使用详解)
    Spring Boot Junit 单元测试详解
    spring @Value注入map、List、Bean、static变量方式及详细使用
    单元测试Junit使用详解
    Mockito & PowerMock详解
  • 原文地址:https://www.cnblogs.com/matd/p/11156820.html
Copyright © 2011-2022 走看看