spring boot的默认全局配置文件的用法以及属性注入

spring boot的默认全局配置文件的用法以及属性注入

A、spring boot 是自动配置(约定),我们可以通过默认的全局配置文件对约定进行修改。全局配置文件有两个:

  1. application.propertise:书写的方式是k=v

  2. applcation.yml:

    • 书写的方式是k: v(冒号之后必须只带一个空格)

    • 通过 垂直对齐 的方式指定层次关系

属性注入

B、使用yaml全局配置文件实现对JavaBean属性注入:

需要注意的是,JavaBean的属性名字必须与配置文件中的名字保持一致,yaml配置文件默认可以不写引号,其中双引号会将其中的转义字符进行转义,而单引号和没有引号则不会)

  1. Map属性和对象类型的属性注入是使用大括号{},并且其中的键值对也是使用yml的书写方式;也可以使用垂直对齐的层次关系,让每个键值对都另起一行,使用k:空格v的方式。

  2. 数组和List、set的属性注入是每个数值另起一行使用减号+空格+属性;也可以使用中括号[]的形式并且中括号可以省略。

  3. 最后是在要注入属性的JavaBean中,通过添加@ConfigurationProperties(prefix=“ ”),将注入属性和此类相关联,还有就是添加@component注解将JavaBean添加中spring的容器中。

C、使用properties配置文件实现对JavaBean属性注入:

(当properties和yaml配置文件都对同一个属性值进行了配置时,会显示properties配置文件中的值。)

  1. 也必须先使用@ConfigurationProperties(prefix="")注解的prefix前缀对JavaBean中进行设置(命名),这样在properties配置文件中使用时就会有提示,从而方便属性值的注入。

  2. 直接在properties文件中,使用第一步设定的prefix前缀名,按照前缀名.属性名=value来进行属性值的注入

(还有一种属性注入的方式:我们可以使用@Value注解,直接在JavaBean中对相应的属性进行属性注入,不必使用@Configuration 注解。这种方式的优先级比properties配置文件的优先级低,但是三种方式互补,没有冲突)

属性注入方式的比较

 @ConfigurationProperties@Value
注值批量注值单个注值
松散语法(即(驼峰命名)nickName = nick-name)支持不支持
SpEl不支持支持
数据校验(JSR303 校验)支持不支持
注入复杂类型支持不支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值