美文网首页SpringBoot
Springboot入门教程系列配置文件

Springboot入门教程系列配置文件

作者: 会上树的程序猿 | 来源:发表于2020-06-18 14:12 被阅读0次

    本篇我们来学习springboot的配置文件,我们都知道springboot使用的全局的配置文件,且配置文件名有固定的格式,常见的如下:

      1. application.properties
      1. application.yml

    其两者的作用都是修springboot的默认配置,比如我们都知道springboot底层帮我们内嵌了Tomcat容器,也就是默认端口是8080,当然我们可以通过如下的方式来修改默认的端口如:

    • yml格式
    server:
        port: 8081
    
    • propertis格式
    application.properties=8081
    

    注意:yml全称是ymal【YAML Ain't Markup Language】的缩写,该语言是一种标记语言,我们之前的配置文件大多数都是以 xxxx.xml的文件。相反的是ymal则大多数以数据为中心,如 json 、xml 等作为配置文件

    • xml文件格式
    <server>
    <port>8081</port>
    </server>
    

    简单的了解这些,接下来我们重点学习YMAL的语法

    YML常见语法
    • 1.基本语法

    所谓基本语法大多数以k:(空格)v:表示一对键值对(注意:空格必须有),这也是初学者很容易犯的毛病

    以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的,比如:

    server:
        port: 8081
        path: /hello
    

    当然属性和值是大小写敏感的

    • 2.值的写法

    这里所谓值的写法,包括字面量、对象、数组等,我们分别来看具体都有什么,以及怎么玩

    2.1. 字面量:包括普通的值(数字、字符串、布尔类型),具体写法如下:
    k: v:字面直接来写
    字符串默认不用加上单引号或者双引号
    "":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思 如:

    name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
    '':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
    name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
    2.2.对象:这里包括我们的Map即【属性和值】and【键值对】,具体写法如下:

    k: v:在下一行来写对象的属性和值的关系;注意缩进
    对象 k: v的方式

    friends:
        lastName: zhangsan
        age: 20
    

    行内写法:

      friends: {lastName: zhangsan,age: 18}
    

    2.3.数组【list、set】具体写法要求:用- 值表示数组中的一个元素

    pets:
     - cat
     - dog
     - pig
    

    行内写法:

    pets: [cat,dog,pig]
    

    经过上述简单的理论知识的了解,我们通过具体的代码实现,新建一个工程

    • pom文件如下:
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    

    上述配置pom文件中可能不太熟悉的是如下的依赖:

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

    上述依赖主要的作用是,当我们在配置文件中编写自己的配置时,添加此依赖,springboot会提示我们配置的属性

      1. javaBean的编写
    /**
     * ConfigurationProperties:告诉springboot将本类中属性跟配置文件中的进行绑定
     * Component:将我们的bean加入到容器中
     */
    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person {
    private String name;
    private Integer age;
    private Boolean boos;
    private Date birth;
    private Map<String,Object> map;
    private List<Object> list;
    private Cat cat;
    

    别忘了上述的getter和setter方法以及toString方法,接着我们来看配置文件

    • 3.yml配置文件
    person:
        name: 张三
        age: 20
        birth: 2019/01/01
        map: {k1: v1,k2: v2}
        list:
          - 小黑
          - 隔壁老王
        cat:
          name: 小虎
          age: 10
        boos: true
    
    • 4.利用springboot的单元测试进行测试
    /**
     * Springboot单元测试类
     */
    @SpringBootTest
    class SpringBootConfigApplicationTests {
    
    @Resource
    private Person person ;
    @Test
    void contextLoads() {
    
        System.out.println(person);
    }
    

    来看测试结果如下图所示:

    image.png

    可以看到的是,我们获取到了我们自己配置的属性值

    三、properties格式的配置文件编写
    person.name=小黑
    person.age=18
    person.birth=2020/01/01
    person.boos=true
    person.map.k1=v1
    person.map.k2=v2
    person.list=a,b,c
    person.cat.name=小黄
    person.cat.age=3
    

    还事利用springboot的 单元测试结果如下图所示:

    image.png

    我们发下会出现中文乱码,我们需要调整idea的编码格式

    image.png

    关于我们springboot的两种配置文件格式的入门案例分析就到这,下节我们继续学习springboot配置的其他相关知识点

    相关文章

      网友评论

        本文标题:Springboot入门教程系列配置文件

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