散装知识点
OncePerRequestFilter(过滤器Filter)
Spring针对Servlet原生过滤器Filter的进一步封装。通过继承OncePerRequestFilter,可以自定义一个过滤器,且每个请求都会执行一次。关于重写方法,init
、doFilter
作为默认实现,有final修饰,我们想进行扩展,需要重写initFilterBean
、doFilterInternal
1 | // 重写doFilterInternal进行业务扩展,别忘了最后进行过滤链调用 |
HandlerInterceptorAdapter(拦截器Interceptor)
HandlerInterceptorAdapter是Spring提供的一种拦截器适配器,通过继承该抽象类自定义拦截器。
主要实现三个接口:preHandle
、postHandle
、afterCompletion
1 | preHandle:前置处理,Controller执行前 |
RequestContextHolder
可随时获取请求与响应,不用controller层往下传。
可自行封装http工具类,eg:https://www.jianshu.com/p/83a872d8db92
MDC
TransmittableThreadLocal(解决异步上下文传递问题)
AOP动态代理,this引用不代理则失效
SmartInitializingSingleton (后置处理解决循环依赖)
HandlerMethodArgumentResolver (自定义接收前端传参实现)
https://blog.csdn.net/dear_little_bear/article/details/104565425
WebDataBinder 参数转换
WebMvcConfigurer
@AliasFor(别名,封装注解)
@EventListener spring事件监听机制
@Import 实现配置链式加载
配置链式加载,多个配置类链式引用,第一个被注入后,后面配置进行链式加载
Controller层接口定义为什么必须是public
接口调用servlet初始化是代理对象,public在后续调用链上会走aop代理增强,注入容器管理的类,private方法则不会。所以private方法被调用时用的是代理对象,代理对象是中自动注入的属性都是null,引发空指针。
Querydsl for JPA
http://querydsl.com/static/querydsl/latest/reference/html/ch02.html
1 | @LastModifiedBy |
自定义starter,如何自动装配
SpringBoot自定义日志Starter,可动态拔插配置 - 掘金 (juejin.cn)
1 | starter中配置统一用一个配置类集中注入 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哀殿firstの空间!
评论