spring相关学习
wudalang5
java学习
展开
-
spring 源码之 bean的生命周期全流程图(应该说涵盖非常清晰了)
画了一上午!,终于感觉差不多了,画此流程图主要为了后面熟悉,看一眼就能达到基本知道xxx 的效果,否则每次感觉都要头脑里面梳理好久!原创 2020-03-06 11:52:22 · 233 阅读 · 0 评论 -
spring源码深入解析bean的依赖注入DI到底如何完成--即分析 AutowiredAnnotationBeanPost 和CommonAnnotationBeanPostProcessor(二)
此篇结合上一篇,这里单独分析 @autowired @resouce 注解 所支持的字段及方法注入的过程到底如何进行的,即从他们注解是合适解析,合适开始依赖注入分析(因为@resouce 注解的特殊性,建议先看我之前的一篇博文,分析过他被 @resouce使用的字段对应 字段信息会被放入 CommonAnnotationBeanPostProcessor 所维护的一个 缓存里,这里我就猜测到它的...原创 2020-03-05 17:58:57 · 397 阅读 · 1 评论 -
spring源码深入解析bean的依赖注入DI到底如何完成--即分析 AutowiredAnnotationBeanPost 和CommonAnnotationBeanPostProcessor(一)
说在前面原创 2020-03-05 12:10:55 · 547 阅读 · 0 评论 -
源码深入解析spring 的初始化方法 initMethod (标有注解的@postConstruct的方法)--极度细致!
1.说在前面,@postConstruct 所标注的方法 内部是靠的spring提供的两个后置处理器共同 协调分布处理完成的,这一点也是网上绝大部人没讲明白的,很多人都只是说到一个,其实我之前看源码也是以为一个,结果,后面由于xxx 我发现了是两个!!这两个后置处理器还是父子关系:InitDestroyAnnotationBeanPostProcessor 和 CommonAnnotation...原创 2020-03-04 11:54:19 · 3215 阅读 · 9 评论 -
从源码深入理解spring的 4 种装配模型 与 两种装配技术(byType, byName)以及注解 @Autowired
理解spring的 4 种装配模型 与 两种装配技术(byType, byName)原创 2020-03-03 19:09:58 · 519 阅读 · 2 评论 -
从 spring-aop 通过getBean(.class) 获取 bean 某种条件下出错而引出对 通过指定bean 类型获取的源码细读--isTypeMatch 方法
先明确(暂不讨论懒加载等特殊):1.一般我们获取bean的两种方式: getBean(“xxbeanName”) 或者 getBean(xxBean.calss)这两种情况即 a. 一种通过beanName, b.一种是bean类型 ,其再源码内最终都是通过 先找到 beanName 后去找到对应的 bean 的2.(即 b.种通过类型来获取其实内部是先做了转换的, -...原创 2020-03-02 13:51:21 · 2140 阅读 · 0 评论 -
spring中 THreadLocal 的运用地方
1.aop 代理xx 在真正对普通bean作为tartget创建代理proxy对象前,先是找该类所对应所有的可以适配的 通知类集合时,在 AbstarctAdvisorAutoProxyCreator 中protected List<Advisor> findAdvisorsThatCanApply( List<Advisor> candidateAdvisor...原创 2020-02-29 10:34:51 · 755 阅读 · 0 评论 -
spring的所有扩展点如后置处理器 全部执行时机
1.第一次调用作用,bean的实例化前(一般都是返回null,不为空,就不会走下面了)2.创建bean生命周期,Object beanInstance = doCreateBean(beanName, mbdToUse, args);内部包含几处使用到1.实例化里面–找构造器时 – 通过SmartInstantiationAwareBeanPostProcessor 后置处理器来确定选...原创 2020-02-24 11:39:59 · 481 阅读 · 0 评论 -
方法注入method overrides 之@lookMethod 作用原理
分隔符原创 2020-02-24 11:07:19 · 654 阅读 · 3 评论 -
spring 的 DI + MI + 4种自动装配模型 (no--即含@Autowired + @resouce, byName, byType, byConstor)
参考自己写的代码:https://github.com/wuda5/spring-relate/commit/6b044fefb4020dc20167ca43143ffdd40a41a372先看几个readmespring种5中装配模型1、AUTOWIRE_NO = 0;(这个NO咋说呢,理解为不使用自动装配吧,spring默认的值)–默认NO【0】这里 NO, 一般使用的 @autoW...原创 2020-02-18 18:20:33 · 492 阅读 · 0 评论 -
spring自动装配模型理解--绝大时候都是NO模型--
–参考https://juejin.im/post/5d99fcc7e51d457822796ea12.@resource 是 模型 byName3.@原创 2020-02-18 15:07:41 · 253 阅读 · 0 评论 -
spring的注入方式DI 和 MI
参考:https://archguide.gitee.io/#/docs/Spring/Spring官网学习笔记/Spring官网阅读(二)依赖注入及方法注入/Spring官网阅读(二)依赖注入及方法注入?id=通过lookup的方式(也分为注解跟xml两种方式,这里只演示注解的)...原创 2020-02-18 14:05:41 · 159 阅读 · 0 评论 -
spring添加构造方法的值 和 添加属性--spring内部可以添加参数值-
spring内部可以添加参数值–>1.构造如:构造方法如下:通过实现xx接口,拿到此bean对应的bd后(如采用@import实现ImportBeanDefinitionRegistrar如mybatis 或者直接实现 factoryBeanPostProccesor ),可以通过如下操作赋值2.属性...原创 2020-02-14 18:53:49 · 217 阅读 · 0 评论 -
记一次阅读mybatis--spring 源码出现的使用 @postConstruct 不生效引出的血泪!(--jdk版本)
.案发描述:1.就是想简单测试下 @postConstruct 的被调用的原理,结果发现死活这里都无法执行到,换了n种方式,2.后面我又在另一个非源码的普通spring项目种测试,发现却执行到了。好嘛,既然它被执行到了,那我就先看此@postConstrcut 到底如何被能够执行到吧(实在无法直接解决了,就只好先弄清楚原理后,在来想思考为啥它在我的源码种执行不到)1.@postConst...原创 2020-01-19 23:51:50 · 3429 阅读 · 7 评论 -
利用 lock- condition- AtomicInteger 实现 多个线程顺序轮番执行 数字累加逻辑
感觉是5.0.的一个bug吧!!!!!!我从官网拿下的spring5.0.x的gradle编译源码执行@postConstruct不生效的!原创 2020-01-19 18:05:00 · 297 阅读 · 0 评论 -
spring源码学习导航路线
1.从new 容器开始,进入注意主体的三个 方法1.this()2.register(annotatedClasses);3.refresh()思路:– 1.默认的哪个bean ConfigurationClassPostProcessor 在哪里被注册bd的 和 哪里 被实例化放入 父类的singtonMap中的 ,bd的注册对应的工厂是这个嘛??2.里面有个mergeBean的概...原创 2020-01-12 16:14:02 · 508 阅读 · 0 评论 -
spring--容器初始执行 new AnnotationConfigApplicationContext(Appconfig)到底何时执行到扫描appcofig定义的包扫描的其他bean的
1.问题,sprng 上下文的 默认bean 5或7 个是什么时候放入的??–即要找到 谁在哪里调用,注册bean信息的,如下:上下文的父类维护了个bean 工厂(这个工厂中的map就是定义 了bean的类信息的),所以debug看在何时最先的调用此 工厂中 的注册bean的方法 regeisterBeanDefinition(xx)下面,根据调用站分析:...原创 2020-01-10 20:41:43 · 696 阅读 · 2 评论 -
spring--利用spring完成工厂模式自动创建对象--FactoryBean接口实现扩展功能的实际运用--mabtis的分析
1.利用spring完成工厂模式自动创建对象(可以控制创建对象是单或多实例的!)原创 2019-12-26 22:11:09 · 299 阅读 · 0 评论