![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 80
xiaoza7
这个作者很懒,什么都没留下…
展开
-
事务启动bean的处理(Propagation.REQUIRES_NEW不生效的原因)
继续进入在创建代理对象时传递了目标对象taget,在用cglib创建代理对象时,仍传过去了target最终返回的enhancer代理对象,如下图示,仍含有目标对象taget实例(这就解释了目标对象的自我调用 Propagation.REQUIRES_NEW 不会起作用的)首先调用的是AOP代理对象而不是目标对象,首先执行事务切面,事务切面内部通过TransactionInterceptor环绕增强进行事务的增强,即进入目标方法之前开启事务,退出目标方法时...原创 2020-05-13 14:36:39 · 1717 阅读 · 0 评论 -
spring小结---bean循环依赖
// Eagerly cache singletons to be able to resolve circular references// even when triggered by lifecycle interfaces like BeanFactoryAware.boolean earlySingletonExposure = (mbd.isSingleton() &&a...原创 2020-04-12 20:36:31 · 303 阅读 · 0 评论 -
spring小结--只有一个参数的有参的构造函数的bean实例化
上一节讲到了无参构造函数的实例化bean,这节介绍只有一个有参的构造函数的bean实例化,以@Component("lmqsthird")public class LmqDao23456 { public LmqDao23456(LmqDao2 lmq) { } public void updatesecondquery() { ...原创 2020-04-12 20:29:28 · 3194 阅读 · 0 评论 -
spring小结---bean实例化
上节讲到aop,继续介绍bean的实例化过程,finishBeanFactoryInitialization(beanFactory);此方法:................ // Stop using the temporary ClassLoader for type matching. beanFactory.setTempClassLoader(null)...原创 2020-04-10 22:47:45 · 247 阅读 · 0 评论 -
spring小结---AOP源码分析
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// Prepare the bean factory for use in this context.prepareBeanFactory(beanFactory);try { // Allows post-processing of t...原创 2020-04-07 22:11:21 · 131 阅读 · 0 评论 -
spring小结
beanPostProcessor: 插手bean实例化过程,实例化之后,工作在bean实例被放在spring的容器之前,例如@PostConstruct, AOPBeanFactoryPostProcessor: 在bean实例化之前执行,针对beanfactory操作,进行类bd 管理操作,例如configclasspostprocesor对appfig进行cglib代理,生成代理类...原创 2020-04-05 15:39:10 · 102 阅读 · 0 评论 -
spring小结(6)-细看@Configuration的appconfig代理类
之前提过@Configuration的appconfig会被cglib代理,生存代理类,然后是对象,在进行含有@Bean方法调用进项1拦截,这里需要细看详细的代理类和拦截细节原创 2020-04-04 22:48:19 · 748 阅读 · 0 评论 -
spring小结-bean初始
在Refresh()具体看下 postProcessBeanFactory ConfigurationClassPostProcessorpublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { int factoryId = System.identityHa...原创 2020-04-02 22:32:53 · 148 阅读 · 0 评论 -
spring小结(5)---继续@Configuration
上节提到@Configuration的cglib,假设将confi类的方法配置为static,会输出2次@Configuration@ComponentScan("com.lmq.BaseService")//@Import(MyImportBeanDefinitionRegistrar.class)@Import(MyImportSelector.class)public class...原创 2020-04-01 20:54:52 · 149 阅读 · 0 评论 -
spring小结(4)--invokeBeanFactoryPostProcessors(regularPostProcessors, beanFactory);
承接上一小节,介绍invokeBeanFactoryPostProcessors(regularPostProcessors, beanFactory);//回调实现BeanFactoryPostProcessor的实现类,目前默认加载的processor有ConfigurationClassPostProcessor,public class ConfigurationClass...原创 2020-03-29 16:24:51 · 615 阅读 · 0 评论 -
spring小结(3)-@Configuration
之前介绍 ConfigurationClassPostProcessor时很关键的类,解析@Configuration的类public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPostProcessor, PriorityOrdered, ResourceLoaderAware,...原创 2020-03-22 20:50:17 · 104 阅读 · 0 评论 -
spring小结(2)----ImportBeanDefinitionRegistrar
上一节主要说了bean注册流程,下面再补充介绍其中关键的流程再解析有@Config主机类时,也会处理@import@Configuration@ComponentScan("com.lmq.BaseService")@Import("实现ImportBeanDefinitionRegistrar接口的类") //也可以是normal类,importSelectpublic...原创 2020-03-20 21:47:31 · 406 阅读 · 0 评论 -
spring小结
1,factorybean与beanfactoryfactorybaen本身是一个bean,是由spring管理,要通过注入或者配置,由spring管理,在beanfactory存放,factorybaen里面有getobject(),getType方法,其中getobject可以获取2种对象,getobject(&name)从beanfactory获取factorybean自身对象,...原创 2020-03-04 22:06:02 · 243 阅读 · 0 评论 -
spring-mybatis与mybatis区别
1,spring-mybatis一级缓存失效,因为是sqlsesstionTemplate,其使用了一个代理proxysession,每次请求都会关闭session;public SqlSessionTemplate(SqlSessionFactory sqlSessionFactory, ExecutorType executorType, PersistenceExceptionTran...原创 2020-03-01 15:11:24 · 2476 阅读 · 1 评论 -
RabbitMq springboot 启动及消费者消费消息源码分析
首先这是application的启动在加载postprocessor时加载其他加载bean省略这里介绍与rabbitmq相关的。。。。。还有自定义的beanwanle完了后接着扫描注解,动态代理创建了mqadmin开始注册监听器扫描组件有线程了开始创建线程池...原创 2019-09-07 22:03:41 · 763 阅读 · 0 评论 -
springboot启动流程之bean注册-源码分析(1)
1,断点进入主程序2,初始化组件其中实例化组件时,使用反射,如下图示初始完组建后,接着是application的run方法在上面过程中,进入context = this.createApplicationContext();进入,默认创建一个AnnotationConfigServletWebServerApplicationContext实例...原创 2019-02-23 22:54:08 · 702 阅读 · 0 评论 -
spring- 基于注解annotions的AOP源码流程整体分析
//本文例子省略,写个aspect,为某个方法增强注入即可,图后面会加上 AOP:【动态代理】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 1、导入aop模块;Spring AOP:(spring-aspects) 2、定义一个业务逻辑类(mathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束...原创 2019-02-17 20:02:06 · 232 阅读 · 0 评论