Spring
文章平均质量分 68
StrangerIt
这个作者很懒,什么都没留下…
展开
-
Spring Cloud全链路灰度发布
实际生产中如有需求变更,并不会直接更新线上服务,最通常的做法便是:切出线上的小部分流量进行体验测试,经过测试后无问题则全面的上线。这样做的好处也是非常明显,一旦出现了BUG,能够保证大部分的客户端正常使用。要实现这种平滑过渡的方式就需要用到本篇文章介绍到的全链路灰度发布灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。原创 2022-12-22 15:16:12 · 12549 阅读 · 0 评论 -
SpringMvc请求流程
springmvc执行流程原创 2022-12-19 16:45:15 · 92 阅读 · 0 评论 -
手写Spring整合mybatis
spring整合myabtis无非就是,把@Mapper修饰的接口扫描到容器中,然后spring中接口是不能呗扫描成为bean定义的,还有spring中connection与mybatis中connection的整合无非就是同一个线程spring生成的connection放到ThreadLocal中,mybatis用到时直接从中取保证了同一个业务方法中spring的连接与Mybatis时同一个。(此文只针对相应的@Mapper接口扫描beandefinition)......原创 2022-08-08 22:45:01 · 10123 阅读 · 0 评论 -
Spring构造器的选择
2)通过annotationConfigApplicationContext.getBean(UserService.class,newOrderService());3、当步骤2中返回的构造方法不为Null时、getResolvedAutowireMode默认true、通过bean定义指定的构造方法的参数、通过getBean设置的参数。2、determineConstructorsFromBeanPostProcessors调用bean的后置处理器筛选出候选的构造方法,注意此时可能存在多个。......原创 2022-07-29 00:21:07 · 516 阅读 · 0 评论 -
Spring实例化过程几种方式以及构造器的选择
个人感觉spring这样设计感觉考虑到效率层面,supplier不需要通过反射,而是在supplierFactory中直接实例化对象,所以supplier的效率比其他方式要高。determineConstructorsFromBeanPostProcessors(beanClass,beanName);当存在多个构造方法、多个构造方法存在@Autowired注解有没有考虑过该选择那个呢。3、@Bean形式、工程方法形式比较简单。2、通过supplier方法形式。1、自定义后置处理器。...原创 2022-07-28 08:52:57 · 10250 阅读 · 0 评论 -
Spring注入点的扫描(Autowired)
一、bean实例化后会调用postProcessMergedBeanDefinition后置处理器寻找注入点AutowiredAnnotationBeanPostProcessor#postProcessMergedBeanDefinition二、findAutowiringMetadata先去缓存中看是否能获取到三、寻找注入点buildAutowiringMetadata(Class clazz)匹配属性、方法是否匹配............原创 2022-06-25 10:02:36 · 891 阅读 · 0 评论 -
Spring底层扫描过程(@Component)
一、ClassPathBeanDefinitionScanner#doScan二、获取候选的beandefinition,this.findCandidateComponents(basePackage)三、this.isCandidateComponent四、上面筛选出@Component的beandefinition此时还不能是真正的beandefition必须满足一下条件才能成为真正的beandefinitionthis.isCandidateComponent((AnnotatedBean原创 2022-06-14 22:35:29 · 1155 阅读 · 0 评论 -
Spring 基于PropertyDescriptor扩展剖析
总结满足以下条件才会生成PropertyDescriptor(注意读写方法是否为空,spring中by_type类型注入会筛选出具有写方法不为空的PropertyDescriptor):1、参数个数必须2个以内、方法不是static2、 方法没有参数:方法有readMethod没有writeMehtod1、普通get开头方法2、返回值boolean 以is开头的3、 有一个参数1、有一个参数且int类型,方法get开头的,没有readMethod writeMehtod等属性2、没有返回值、原创 2022-06-29 22:38:44 · 10342 阅读 · 0 评论