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.52
2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms
2019-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