【2022】软件笔录&&日记

【一月份笔录】

😀 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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值