Springboot入门笔记3

新建项目 springboot-02-config

在这里插入图片描述
官方不推荐使用properties配置文件(properties也可以用 只是yaml方便又快捷)
在这里插入图片描述
SpringBoot使用一个全局的配置文件
配置文件的作用 :修改SpringBoot自动配置的默认值(因为SpringBoot在底层都自动配置好了)
且配置文件名称是固定的

  • application.properties
    语法结构 :key=value
    在这里插入图片描述

  • application.yml
    语法结构 :key:空格 value
    在这里插入图片描述

而传统的xml配置方法是:

<server>
    <port>8081<port>
</server>

yaml基础语法

  • 空格不能省略
  • 用缩进控制层级关系 (即左边对齐的一列数据都是同一个层级的)
  • 属性和值的大小写都是十分敏感的
# 普通的kv
name: renyu

#对象
student:
  name: renyu
  age: 3
  #行内写法:         student: {name: renyu,age: 3}

#数组
pets:
  - cat
  - dog
  - pig
  #行内写法:         pets: [cat,dog,pig]

下面跟着图示做(偷懒可以用lombok)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外(解决报红):
在这里插入图片描述
在这里插入图片描述
添加到pom.xml里并重启idea就好了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
拓展:加载指定的配置文件

在这里插入图片描述
在这里插入图片描述

拓展:配置文件占位符

在这里插入图片描述

对比:配置yml和配置properties

properties配置文件在写中文的时候,会有乱码。因此我们:
在这里插入图片描述
举例:
在这里插入图片描述
在User类上使用@Value来进行注入:

@Component //注册bean
@PropertySource(value = "classpath:user.properties")
public class User {
    //直接使用@value
    @Value("${user.name}") //从配置文件中取值
    private String name;
    @Value("#{9*2}")  // #{SPEL} Spring表达式
    private int age;
    @Value("男")  // 字面量
    private String sex;
}

总结

优点:

  • @ConfigurationProperties只需要写一次即可 , @Value则需要每个字段都添加(为每个属性单独注解赋值)
  • 支持松散绑定(比如last-name,和lastName是一样的,即 - 后面跟着的字母默认是大写的)
  • 复杂类型封装(yml中可以封装对象)
  • JSR303数据校验 , 即在字段是增加一层过滤器验证 , 保证数据的合法性
    在这里插入图片描述
    注:Email注解报红 添加validation启动器(2.2以上版本的都需要自己导入)
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

配置yml和配置properties都可以获取到值
如果在某个业务中,只需要获取配置文件中的某个值,可以使用@value
如果说编写了一个JavaBean和配置文件一一映射,就用@configurationProperties

                                                                   参考资料:狂神说
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值