纯手写SpringBoot教案系列-SpringBoot配置详解

二.SpringBoot配置详解

1. 传统的xml配置缺点

  • 配置繁琐,需要记忆大量的配置项
  • 重复配置多
  • 配置可读性不强
  • 可能因为一个配置出错而造成全局错误

2. SpringBoot两种配置方式比较

  • properties文件配置
  • YAML配置(发音参考百度,错误发音鸭妹儿哦)

1. properties文件配置

  • 通常用于教学,或者单人开发的项目中
  • 可读性较强
  • 使用Unicode编码(不支持中文)
  • 配置与配置相互独立
  • 没有层级关系
  • 后缀为.properties

2. YAML(Yet Another Markup Language)配置

  • 企业级开发首选
  • 可读性强
  • 使用UTF-8编码(支持中文)
  • 配置间有父子,兄弟关系
  • 有明显的层级关系
  • 以数据为中心
  • 后缀为.yaml或者.yml

3. YAML语法入门

1. YAML基本语法约束

  • 使用缩进表示层级关系(类似Python)
  • 缩进时不允许Tab,只能是空格(这个IDEA帮忙做了)
  • 缩进空格数量没有关系,相同层级对其即可
  • 对大小写敏感

2. YAML支持的三种数据结构

  • 对象:键值对(或Map)

    例子:

    块级写法

    student:
       name: "张三"
       age: 20
       sex: "男"
    

    或者是行级写法(不常用,可读性差):

    student: {name: "张三",age: 20,sex: "男"}
    
  • 数组:一组按次序排列的值(包含List,Set)

    例子:

    块级写法

    students:
       - "张三"
       - "李四"
       - "王二"
    

    行级写法

    students: ["张三","李四","王二"]
    

    以上写法请注意空格

    YAML同时支持复合结构,用的较少,不再赘述

  • 字面量: 单个,不可再分的值

3. 注意事项

  • 对象必须是k:+空格+v

  • 同一层级必须通过空格左对齐

    例:

    server:
    	port: 80
    
  • 字面量释义

    字面量: 普通的值(数字,字符串,布尔…)

  • 双引号和单引号的区别

    双引号不会转义特殊字符

    单引号会转义特殊字符

4. 配置实战

1. 复杂对象的映射

在application.yml中创建student

student:
   name: "张三"
   age: 8
   teacher: "小覃"
   birth: "2011-08-12"
   map: {k1: v1,k2: v2,k3: v3}
   list:
      - "李四"
      - "赵五"
   dog:
      name: "阿黄"

在pojo中创建实例对象

public class Student {
    private String name;
    private Integer age;
    private String teacher;
    private String birth;
    private HashMap map;
    private ArrayList list;
    private Dog dog;
}
public class Dog {
    private String name;
}

我们使用@ConfigurationProperties将配置文件导入,并使用**prefix = “student”**标注前缀

这时上面会提示没有引入提示器

在pom.xml中引入提示器

 <!--配置文件提示器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

同时Spring要求被注册的对象必须是Spring中的一个组件

所以添加@Component注解

然后添加对应的Getter和Setter以及toString

alt+insert

调出快捷生成面板

生成对应方法

2. lombok自动生成GST工具

  1. 唤出IDEA设置界面

    ctrl+alt+s

  2. 进入插件中心安装lombok插件

  3. 安装成功后重启IDEA

  4. 在Settings设置页面,我们点击Build,Execution,Deployment–>选择Compiler–>选中Annotation Processors,然后在右侧勾选Enable annotation processing

  5. 在pom文件中加入lombok依赖

    最新依赖

     <!--lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.8</version>
                <scope>provided</scope>
            </dependency>
    
    
  6. 最后就可以直接通过@Data注解来使我们的代码更加清爽

3. properties文件编码问题实战

4.读取外部配置文件

@PropertySource 引入外部后缀为.properties的文件(不支持YAML)

@PropertySource(value = "classpath:student.properties")
@Component
@ConfigurationProperties(prefix = "student")
@Data
public class Student {
    private String name;
    private Integer age;
    private String teacher;
    private String birth;
    private HashMap map;
    private ArrayList list;
    private Dog dog;
}

5. Profile多环境切换

Profile是SpringBoot用于切换生产环境,开发环境,调试(测试)环境配置文件的解决方案

  1. 命名规则

    所有配置文件均以application-{profile}.yml命名

    默认使用application.yml文件

  2. 使用spring.profile.active = {profile}激活指定文件

  • yml多文档配置形式
使用
---
分割多个文档
激活方式同上

  • 命令行激活模式

    在启动时后面添加–spring.profile.active = {profile}

    编辑项目里的Program Arguments里添加


以上博文是我在培训的时候整理的教案,码字不易,转载请注明出处,联系邮箱[email protected]

发布了37 篇原创文章 · 获赞 35 · 访问量 6546

猜你喜欢

转载自blog.csdn.net/itkfdektxa/article/details/100126001
今日推荐