SpringBoot的基础
自动配置原理

2、读取顺序

3、最顶级的 配置文件读取
配置文件只要放到文件夹里面即可
属性注入
单个添加
  
批量添加

命名格式也存在好几种

增加提示


不同类型的自动绑定

添加数据校验功能


官网2.7文件中
引用外部资源

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

排除不需要的Bean源码剖析




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











去到自定配置类来读取,该如何去设置属性,如何写配置
完成自动配置要两步
1、读取自动配置类
2、如果通过文件关联到自动配置类(举例子,从23个抽取一个讲
)
SpringBoot的热部署



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


1、
采用官方的
2、
采用开源的

1、2虽然是类似,但是引用的包是不同的包。
不能直接使用实现的,而是通过日志门面
改动如下
开源的改动:
需要引入的依赖如下

需要日志的适配器和桥接器

需要增加桥接器
官方的改动:
添加依赖


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

增加一个依赖即可
然后日志的输出,还是使用log4j的配置


SpringBoot日志的使用



日志等级

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

%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上写上这一串
日志的输出


日志迭代输出


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

自定义日志输出




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



日志框架的切换(SpringBoot默认是logback)
将logback转换为log4j2,需要做如下操作

如果添加下面这个,上面就得这么写,必须排除,不然会报错

将logback转换为log4j,需要做如下操作


log4j的配置文件(不过目前已经淘汰了,没有更新了)
SpringBoot的web开发
通过HTTP接口进行传递,web作为后端,进行处理

1、SpringMVC快速使用

在一个前后端分离的情况下,有几种方式来调用接口。
也可以封装到一个返回对象中


写完之后,肯定的通过测试,作为接口给前端,或者给其他微服务。
web后端服务器只提供HTTP接口,(为了实现前后端分离,不整前端了)


通过以下方式进行实现
再写一个微服务(web项目,用来方位上面的那个的)
那个order少了一个/



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




但是进行负载均衡就很不方便了。
或者下载一个APIPost这个软件,或者postMan
测试数据更快,比写RestTemple更快。
2、自动配置分析

关于如何查看其视图,可以看到Spring框架官网



就会去实现resolveViewName,就会根据传入的viewName来返回一个视图。
  它就会去调用上面的这个方法了。

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



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


这个方法是专门的处理静态资源的






欢迎来到首页的原理
自己定义一个Bean,让他返回这个类型,然后就会自动注册到容器中的。
格式转换



封装成一个视图解析器,然后找到对应的视图的名称,然后就可以返回了。
SpringBoot实现自定义拦截器

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

这个是全局的跨域请求,


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


   

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

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

