【一月份笔录】
😀 2022-01-01
Sentinel基础使用
😀 2022-01-02
1、Sentinel源码分析
- Sentinel与Springboot的整合方法
- 责任链设计模式
- 这条责任链是如何构造而成的
- 每个槽位的大概职责
源码入口
自动配置类SentinelAutoConfiguration
-> SentinelResourceAspect(注意这个类是AOP切面类,使用了环绕通知) -》SphU.entry方法 -〉构造责任链 -》依次调用链子上的每一个槽位
看到上面的源码中使用了切AOP注解,突然发现自己AOP有些薄弱了,当然不是看不懂AOP的代码,只是发现自己不能在不看别人例子的前提下,独立的将一个切面类写出来,而且怎么解析这个自定义注解,获取注解中的 参数等。
2、环绕通知和前置通知、后置通知的执行顺序
3、环绕通知和异常通知的执行顺序
4、如何利用AOP切我们的自定义注解、获取注解中的参数
大佬博客:【SpringBoot-3】切面AOP实现权限校验:实例演示与注解全解
😀 2022-01-03
监听器的基本使用
Spring内置的监听器
将容器改成激活状态,只有激活了,才能去调用getBean preparedRefresh AbstractApplicationContext
基于接口方式的监听器注册 两个地方,一个是在registerListeners() ApplicationListenerDetector(防止懒加载这样的监听器)
基于注解的的方式@EventListener 在EventListenerMethodProcessor中执行的,这个是内置的事件监听处理器,使用反射的方式来进行调用我们的事件监听器中的方法。
可以使用同步或者异步的方式去执行监听器中的方法SimpleApplicationEventMulticaster.doInvokeListener()
Spring是怎么避免去使用不完整的Bean的?
Spring在所有的Bean创建好之后,我们如何去进行扩展? SmartInitialBeanPostProcessor、ContextRefreshedEvent
AOP使用接口的方式 ProxyFactoryBean
滑动窗口算法、漏桶算法、令牌桶算法
😀 2022-01-04
今天感觉没干啥事情啊,打酱油的一天
1、JS添加了时间的校验,查询时间不能超过1天
获取一个格式化了的时间字符串 例如:
var startTimeStr = '2022-01-04 15:23:30'
var endTimeStr = '2022-01-05 15:23:30'
var start = new Date(Date.parse(startTimeStr)).getTime()
var end = new Date(Date.parse(endTimeStr)).getTime()
var interval = (end -start)/1000/60/60/24
if(interval > 1){
return;
}
2、layui调了调样式,比如说,layui的表格显示有空隙、弹出框之后,弹框有滚动条,因为这些高度设置得不合理。将一些纯文字的按钮,加上了一些字体图标来进行混合展示。还有就是一些状态类的展示,之前是通过 ‘是’ 与 ‘否’ 这样的纯文字展示,换成了字体图标展示。
3、下班之后回到了家里,本来是想看一下AOP的源码这块内容的…结果,去了哔哩哔哩了,看了一些macbook的一些好用的软件,比如过窗口管理软件Rectangle、截图贴图神器snipaste、垃圾清理软件柠檬清理、超级右键等。
😀 2022-01-05
每一个通知方法都会封装成一个advisor InstantiationModelAwarePointcutAdvisorImpl 每个方法都对应一个advisor
BeanNameAutoProxyCreator 使用这种方式,只要符合设置的表达式规则,都会被扫描进来创建动态代理, 而不是每次都是用ProxyFactoryBean
找到所有@aspectj的类,生成很多advisor对象,advisor中封装了增强的方法和pointcut
在第一次调用BeanPostProcessor时,会解析我们成advisor对象,每一个before、after等都会生成一个advisor
在初始化Bean之后,会创建动态的代理(拿到advisors、匹配pointcut、匹配上了就可以创建动态代理)
EnableAspectJAutoProxy AspectJAwareAdvisorAutoProxyCreator postProcessBeforeInstantiation postProcessAfterInitialization
JdkDynamicAopProxy
异常通知(有异常才执行)-》返回通知(无异常才执行) -〉后置通知(在finaly中)-》前置通知-〉调用具体的方法
字节码增强技术
😀 2022-01-06
byte-buddy的使用、寻找tomcat的切入点,获取tomcat线程池相关数据
刷电视剧去了
😀 2022-01-07
reactor模型
https://blog.csdn.net/qq924862077/article/details/81026740
😀 2022-01-08
tomcat模块组成
https://tianjunwei.blog.csdn.net/article/details/79617612
😀 2022-01-16
tomcat启动流程源码
https://blog.csdn.net/z1790424577/article/details/105513906
😀 2022-01-17
springboot启动流程
😀 2022-01-19
复习springboot的启动流程
在哪里加载IOC容器
在哪里创建的tomcat
在哪里注册的DispatchServlet
SpringServletContainerInitializer
外置tomcat是怎么注册DispatchServlet的
外置tomcat是怎么启动main方法的
通过监听器。来加载配置文件
预初始化context,会将配置类注册成BeanDefiniton
refresh
createWebServer方法解读
getWebServerFactory方法解读
getWebServer方法解读
selfInitialize中打一个断点
DispatcherServletConfiguration
DispatcherServlet的注册
😀 2022-01-22
tomcat lifecycle子类结构图
https://tianjunwei.blog.csdn.net/article/details/79617612