美文网首页Spring Framework
Spring Boot ——Spring Boot配置

Spring Boot ——Spring Boot配置

作者: 程序员方方土 | 来源:发表于2019-12-08 10:41 被阅读0次

    一、配置文件

    1、Spring Boot使用一个全局得到配置文件,有两种形式

    • application.properties

    • application.yml

    2、作用:修改Spring Boot的自动配置的默认值,Spring Boot底层会自动帮我们配置好。

    3、yml认识,全称(YAML Ain't Markup Language),是一个标记语言。

    • 对比,以前的配置文件;大都使用xml格式的文件,现在yml配置文件比xml、json格式更适合做配置文件,简单方便。

    • 如例:

    yml格式

    server:
      port: 8090
    

    xml格式

    <server>
       <port>8090</port>
    </server>
    

    二、yml语法

    1、基本语法

    • yml文件中是以键值对的形式来进行一些手动需要的配置,格式如:key:(空格)value 即可,注意,这里面一定要带上空格。

    • 每一层级关系,我们需要通过空格缩进来指引其属于哪一层级,只要左对齐的一列数据,都属于同一层级的。

    如:

    server:
      port: 8090
      error:
        path:
    

    2、属性值的配置敏感,需按规定配置

    • 基本数值(数字、字符串、布尔值),这里包含字符串
      a. 直接以key: value按照字面数值直接写;

      b. 字符串默认不需要加单双引号;

    • 对象值、Map,还是以键值对存在
      key: value,直接在对象的下一行写属性和值,需要注意

    person:                     
          name: xiaoming                    
          age: 18
    

    也可以行内写法,其实也还是键值对的衍生

    person: {name: xiaoming,age: 18}
    
    • 数组、List、Set
      用“- 值”表示数组中的一个元素
    animals:
           - dog
           - cat
    

    行内写法

    animals: [dog,cat]
    

    三、从配置文件中获取值

    将配置文件中的值映射到组件中

    yml配置文件

    server:
      port: 8090
      
    person:
      name: xiaoming
      age: 18
      student: false
      birth: 2015/12/23
      maps: {k1: v1,k2: v2}
      lists:
        - xiaoming
        - xiaohong
      cat:
        name: xiaomi
        age: 2
     
    

    javaBean:

    package com.example.springboot02.bean;
     
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
     
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
     
    /**
     * 将配置文件中配置的每一个属性的值映射到这个组件中
     * @ConfigurationProperties:告诉SpringBoot将来类中的所有属性和配置文件中相关的配置进行绑定,
     *     prefix = "person":配置文件中哪个下面的所有属性进行映射
     *
     *     只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
     */
    @Component//将这个组件放入容器中
    @ConfigurationProperties(prefix = "person")
    public class Person {
     
        private String name;
        private Integer age;
        private Boolean student;
        private Date birth;
     
        private Map<String, Object> maps;
        private List<Object> lists;
        private Cat cat;
     
       ...
    }
     
    

    单元测试

    @RunWith(SpringRunner.class)
    @SpringBootTest//表示Spring Boot的一个单元测试
    class Springboot02ApplicationTests {
     
        @Autowired
        Person person;
     
        @Test
        void contextLoads() {
            System.out.println(person);
        }
     
    }
    

    上一篇:Spring Boot ——@SpringBootApplication及其相关注解
    下一篇: Spring Boot ——@ConfigurationProperties 、 @Value 、 @PropertySources 、@Configuration 、@Bean and so on

    相关文章

      网友评论

        本文标题:Spring Boot ——Spring Boot配置

        本文链接:https://www.haomeiwen.com/subject/ryfmgctx.html