欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot学习笔记

程序员文章站 2022-03-26 17:43:29
一、YML语法k: v 结构"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思eg: name: "zhangsan \n lisi":输出;zhangsan 换行 lisi----------------------------------------------------------------'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据eg: name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi对象、M...

精髓:

1)、SpringBoot启动会加载大量的自动配置类

2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;

3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)

4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;

xxxxAutoConfigurartion:自动配置类;
给容器中添加组件
xxxxProperties:封装配置文件中相关属性;

一、第一章

yml语法

k: v 结构

"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
eg: name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
----------------------------------------------------------------
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
eg: name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值):

//第一种
person:
  name: 张三
  gender: 男
  age: 22
//第二种行内写法
person: {name: 张三,gender:,age: 22}

数组(List、Set)

//第一种
fruits: 
  - 苹果
  - 桃子
  - 香蕉
//第二种
fruits: [苹果,桃子,香蕉]

注解

@ConfigurationProperties(prefix = “person”)
@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;

  •  prefix = "person":配置文件中哪个下面的所有属性进行一一映射
    

@Value
1、${}
2、 #{}
3、 直接写

@ConfigurationProperties @Value
功能 批量注入数据 单个注入数据
SpEL 支持 不支持
JSR303数据校验 支持 不支持
复杂类型封装 支持 不支持

@PropertySource:加载指定的配置文件

@PropertySource(value = {"classpath:person.properties"})

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;

@ImportResource(locations = {"classpath:beans.xml"})

激活指定的profile

1、在配置文件中指定  spring.profiles.active=dev

​ 2、命令行:

​ java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;

​ 可以直接在测试的时候,配置传入命令行参数

​ 3、虚拟机参数;

​ -Dspring.profiles.active=dev

配置文件加载

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件

–file:./config/

–file:./

–classpath:/config/

–classpath:/

优先级由高到底,高优先级的配置会覆盖低优先级的配置;

SpringBoot会从这四个位置全部加载主配置文件;互补配置

日志

开发中,总会引用不同的框架,而不同的框架内部封装的日志jar包是不同的,springboot如何让他们统一起来的呢?

  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架(适配器的类名和包名与替换的被日志框架一致);
  3. 我们导入slf4j其他的实现
    中间包起到偷梁换柱的作用,把原来的日志包转换为我们要统一的日志包。
    总结:
    1、SpringBoot底层也是使用slf4j+logback的方式进行日志记录
    2、SpringBoot也把其他的日志都替换成了slf4j;
    3、SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;

本文地址:https://blog.csdn.net/zhengguofeng0328/article/details/109841864