05 2020 档案
摘要:一、循环依赖产生的原因 A依赖B,B又依赖A @Component class A { @Autowired B b; } @Component class B { @Autowired A a; } A类Bean创建过程: 先实例化A,(一般都是)通过无参构造完成实例化; A属性注入,发现A依赖B
阅读全文
摘要:bean的生命周期把它总结为以下几个阶段 实例化 属性注入/依赖注入 初始化 销毁 其中实例化、属性注入、初始化属于bean创建的过程。 bean创建的过程流程图 (1)当spring容器在启动的时候或者启动完成后显示调用getBean方法时来获取bean实例的时候,都会调用这个doGetBean方
阅读全文
摘要:调试分析 由于源码一步一步调试效率太低了,所以我这里就直接在自定义的Filter类上的doFilter方法中打上断点 先通过线程栈来大致看一下,请求的过程中执行了哪些步骤 每一个方法点进去,然后给它整理成一张表格,如下: 分析: 上图执行执行次数最多的方法是invoke 所有调用invoke方法的类
阅读全文
摘要:线程上下文切换(Thread Context Switch ) 定义 CPU执行线程的时候是通过时间分片的方式来轮流执行的,当某一个线程的时间片用完(到期),那么这个线程就会被中断,CPU不再执行当前线程,CPU会把使用权给其它线程来执行。如T1线程未执行结束,T2/T3线程插进来执行了,若干时间后
阅读全文