SpringBoot:@ConfigurationProperties@PropertySource@ImportResource

Spring Boot的配置文件

1.Spring Boot使用一个全局配置文件,放置在src/main/resources目录或类路径/config下:

  • application.properties
  • application.yml

2.配置文件的作用:修改Spring Boot自动配置的默认值

3.yml时YAML(YAML Ain't Markup Language)不是一个标记语言

  • 标记语言,以前的配置文件,大多数使用的是xml文件进行配置,例如web.xml
    • YAML:以数据为中心,配置数据的时候具有面向对象的特征;比json、xml等更适合做配置文件

YAML语法格式

  1. key: value表示一对键值对(冒号后面必须有空格)

  2. 使用空格缩进表示层级关系

  3. 左侧缩进的空格数目不重要,只要同一层级的元素左侧对齐即可

  4. key与value大小写敏感

YAML常用写法

  • 字面量:数值、字符串、布尔、日期
  • 对象&Map

      key: value存储对象,每个值换一行写

       行内写法

  • 数组(List,Set)

       用 - 值表示数组中的一个元素

       

      行内写法

      

yaml配置文件注入值

/**
 * 1、@ConfigurationProperties告诉SpringBoot将配置文件对应的属性映射到这个组件类中,自动进行一一绑定
 * 2、prefix = "emp"配置文件的前缀名
 * 3、@Component 必须将当前组件作为SpringBoot中的一个组件,才能使用容器提供的@ConfigurationProperties功能
 *
 */
@ConfigurationProperties(prefix = "emp")
@Component
@Data
public class Emp {

    private String lastName;

    private Integer age;

    private Double salary;

    private Boolean boss;

    private Date birthday;

    private Map map;

    private List list;


}

yml文件配置

比较@Value和@ConfigurationProperties获取值

使用@Value获取值,把Emp类中@ConfigurationProperties注释掉

//@ConfigurationProperties(prefix = "emp")
@Component
@Data
public class Emp {
    @Value("${emp.lastName}")//${key}从配置文件中获取值
    private String lastName;

    private Integer age;
    @Value("#{2*2000}")//#{SpEL}表达式
    private Double salary;

    private Boolean boss;

    private Date birthday;

    private Map map;

    private List list;


}
 @ConfigurationProperties@Value示例
实现功能批量注入配置文件的属性值一个一个指定 
松散绑定支持不支持

last_name==lastName

last-name == lastName

SpEL不支持支持#{10*2}
复杂类型封装支持不支持 
JSR303数据校验支持不支持 

加载指定配置文件@PropertySource(加载局部配置文件)

@ConfigurationProperties默认从全局配置文件(application.properties/application.yml)中获取值,所有的配置数据都写在全局配置文件中,显的过于臃肿,放到其他局部配置文件中。

@PropertySource:用于加载局部配置文件。

将全局配置文件中的相关的emp数据抽取到/resource/emp.properties

@ImportResource使用xml配置

SpringBoot提倡无xml配置,但实际开发中可能会有一些特殊要求要求是用xml配置,我们可以通过@importResource来加载配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值