SpringBoot的基础

自动配置原理

image.png

2、读取顺序

image.png

3、最顶级的 配置文件读取

配置文件只要放到文件夹里面即可
image.png

属性注入

单个添加
image.png
批量添加
image.png

image.png

命名格式也存在好几种
image.png

image.png

增加提示

image.png

image.png

不同类型的自动绑定

image.png

添加数据校验功能

image.png

image.png
官网2.7文件中

引用外部资源

image.png

Spring可以调的配置属性官网如下:

image.png

排除不需要的Bean源码剖析

image.png

image.png

image.png

image.png
通过继承TypeFilter,实现自定义的match方法。
SpringBoot对外提供的扩展类,根据自定义的方式进行排除

image.png

image.png

image.png

image.png

image.png

image.pngimage.png

image.png

image.png

image.png
image.png

去到自定配置类来读取,该如何去设置属性,如何写配置

完成自动配置要两步
1、读取自动配置类
2、如果通过文件关联到自动配置类(举例子,从23个抽取一个讲

image.png

SpringBoot的热部署

image.png

image.png

image.png

Java中日志

Java中日志的混乱情况如何统一

image.png
image.png

1、
采用官方的
image.png

2、
采用开源的
image.png
image.png

1、2虽然是类似,但是引用的包是不同的包。
不能直接使用实现的,而是通过日志门面

改动如下

开源的改动:

需要引入的依赖如下
image.png
image.png
需要日志的适配器和桥接器
image.png

image.png

需要增加桥接器
image.png

官方的改动:
添加依赖
image.png

image.png

image.png

如果两个项目组合并,又不能冲突,不需要改代码,如何进行合并呢?

image.png

增加一个依赖即可
image.png

然后日志的输出,还是使用log4j的配置
image.png

image.png

image.png

SpringBoot日志的使用

image.pngimage.png

image.png

日志等级
image.png
image.png

SpringBoot的日志格式

输出以下项目:

  • 日期和时间:毫秒精度且易于排序。
  • 日志级别:ERROR,WARN,INFO,DEBUG,或TRACE。
  • 进程标识。
  • 一个—-分离器来区分实际日志消息的开始。
  • 线程名称:括在方括号中(可能会被截断以用于控制台输出)。
  • 记录器名称:这通常是源类名称(通常缩写)。
  • 日志消息。
    1. 2019-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
    2. 2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
    3. 2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms
    4. 2019-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
    5. 2019-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

如何从官网找到对应的 属性
image.png

image.png

  1. %clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}

在yaml上写上这一串
image.png

日志的输出

image.png

image.png

日志迭代输出

image.png

image.png

设置大小,如果超出了就自动归档
image.png
image.png

自定义日志输出

image.png
image.png
image.png
image.png

还可以设置多种格式,然后激活某一种

image.png
image.png
image.png

日志框架的切换(SpringBoot默认是logback)

将logback转换为log4j2,需要做如下操作
image.png
image.png
如果添加下面这个,上面就得这么写,必须排除,不然会报错
image.png

image.png

将logback转换为log4j,需要做如下操作
image.png
image.png
image.png
log4j的配置文件(不过目前已经淘汰了,没有更新了)
image.png

SpringBoot的web开发

通过HTTP接口进行传递,web作为后端,进行处理
image.png

image.png

1、SpringMVC快速使用

image.png
在一个前后端分离的情况下,有几种方式来调用接口。

也可以封装到一个返回对象中
image.png
image.png
image.png

写完之后,肯定的通过测试,作为接口给前端,或者给其他微服务。
image.png

web后端服务器只提供HTTP接口,(为了实现前后端分离,不整前端了)
image.png
image.png
image.png
通过以下方式进行实现
image.png
再写一个微服务(web项目,用来方位上面的那个的)
那个order少了一个/
image.png

image.png

image.png
image.png

通过RestTemple来进行传输,底层是转换为json的,那么接收也得按json来接收

image.png
image.png

image.png

image.png
但是进行负载均衡就很不方便了。

或者下载一个APIPost这个软件,或者postMan
测试数据更快,比写RestTemple更快。

2、自动配置分析

image.png

关于如何查看其视图,可以看到Spring框架官网
image.png
image.pngimage.png
image.png
就会去实现resolveViewName,就会根据传入的viewName来返回一个视图。
image.png

image.png 它就会去调用上面的这个方法了。

image.png

那么什么时候初始化呢?不然我怎么拿到。
image.png
image.png

image.png
image.png

如果要操作pdf或者Excel,SpringBoot也提供了对应的基类
image.png
image.png

image.png

这个方法是专门的处理静态资源的
image.pngimage.png
image.png
image.png
image.png
image.png
image.png

欢迎来到首页的原理
image.png

自己定义一个Bean,让他返回这个类型,然后就会自动注册到容器中的。
image.png

格式转换
image.png

image.png
image.png
image.png
封装成一个视图解析器,然后找到对应的视图的名称,然后就可以返回了。

SpringBoot实现自定义拦截器

image.png

将自定义的拦截器配置成Bean,然后再添加配置,需要去拦截哪些地址。image.png
image.png

这个是全局的跨域请求,

image.pngimage.png

具体到某个方法里面的 跨域请求

image.png

image.png
image.png

image.png
将所有实现WebMVCConfigurer接口的都获取出来,注入到一个容器中。

image.png

46https://www.bilibili.com/video/BV1Tq4y1W7FH?p=46&spm_id_from=pageDriver

image.png