
spring
文章平均质量分 79
古良道
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring创建及使用切面过程
文章目录AspectJ和Spring aopSpring创建切面创建入口1.普通场景代理1-c.为AspectJ创建对应的advisorc-I.先找到使用了@Aspect注解的类或者使用ajc编译的类c-II.创建普通Advisor及IntroductionAdvisor2.再找出匹配上的切面3.看看是不是需要其他辅助切面【AspectJ】2.根据名字代理切面执行代理执行代理的入口执行切面代理顺序拼接原理AspectJAroundAdviceMethodBeforeAdviceInterceptorAspe原创 2021-09-10 18:06:46 · 1412 阅读 · 0 评论 -
Spring切面笔记
1.在创建普通bean之前,会先创建postprocessor2.一般会先触发创建advisor,在创建advisor时,会先实例化factory(声明或者创建advisor的类),所以比如配置类有定义advisor的beanMethod,就会导致这个configuration先生成实例、注入属性(populate)、注入到spring中,最后再创建advisor...原创 2021-06-09 20:17:49 · 218 阅读 · 0 评论 -
apollo配置变更原理
普通情况下,使用 实现apollo的监听器ConfigChangeListener,通过onChange方法来实时获取配置。但是,如果对配置变化的时效性要求不高,只是想在用到配置的时候,使用新配置的话,可以不实现监听器,直接从environment里面获取配置。文章目录apollo机制图解代码分析主要流程创建RemoteConfigRepository首次同步apollo开启定时刷新配置...原创 2020-01-17 17:32:37 · 4178 阅读 · 1 评论 -
@Aspect结合@Order能建立具有最高优先级的切面?
文章目录疑问探究原因总结疑问一般情况下,比如说@around接口就只有一个参数ProceedingJoinPoint,是不会有问题的(只是侥幸),但是使用多个参数时,就会抛出异常。如下,around方法有两个参数时,程序抛异常:@Aspect@Order(Ordered.HIGHEST_PRECEDENCE)public class TestOrderAspect { @Po...原创 2020-01-16 18:18:52 · 1795 阅读 · 0 评论 -
使用了 @ConditionalOnClass 却仍然报找不到类的错
文章目录前言我的错误经历分析总结经验前言@ConditionalOnClass的作用是当有该类时,才符合条件,继续执行其他逻辑。@ConditionalOnClass包含两个属性:value和namevalue是class数组,name是string数组。当一个类不确定是否在classpath当中时,建议使用name属性,就算找不到该类时,也不会报错。我的错误经历概况就是,我使用了...原创 2020-01-14 17:10:39 · 7027 阅读 · 0 评论 -
记:SpringBoot的自动配置 —源码如何处理加载条件和顺序
记:SpringBoot的自动配置—源码如何处理加载条件和顺序入口:AbstractApplicationContext的refresh方法在其invokeBeanFactoryPostProcessors方法中,会找到所有需要加载的类(不仅仅是自动配置的类),并且为之排序,根据类加载条件来放弃加载@Overridepublic void refresh() throws BeansEx...原创 2019-07-28 23:50:14 · 504 阅读 · 0 评论 -
spring扫描类至解析为BeanDefinition的过程
执行大致流程:AbstractApplicationContext.refresh->invokeBeanFactoryPostProcessors->PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors->invokeBeanDefinitionRegistryPostProcessors-&...原创 2019-07-31 23:58:43 · 920 阅读 · 0 评论 -
Spring与SpringBoot对Environment的初始化过程事件发布对比
概述:Spring在初始化environment过程中没有发布有关environment的事件,而SpringBoot会在准备好environment的时候就发布一个applicationEnvPreparedEnvent。但Spring可以发布ContextRefreshedEvent、ContextStartedEvent、ContextStoppedEvent、ContextClosedE...原创 2020-01-07 09:36:15 · 940 阅读 · 0 评论