Spring原理

Spring中FactoryBean的作用和实现原理

BeanFactory与FactoryBean,相信很多刚翻看Spring源码的同学跟我一样很好奇这俩货怎么长得这么像,分别都是干啥用的。BeanFactory是Spring中Bean工厂的顶层接口,也是我们常说的SpringIOC容器,它定下了IOC容器的一些规范和常用方法并管理着Spring中所有的Bean,今天我们不讲它,我们看一下后面那个Facto...

Spring Boot源码分析-配置文件加载原理

在Spring Boot源码分析-启动过程中我们进行了启动源码的分析,大致了解了整个Spring Boot的启动过程,具体细节这里不再赘述,感兴趣的同学可以自行阅读。今天让我们继续阅读源码,了解配置文件加载原理。 基于Spring Boot 2.1.0.RELEASE 在开始阅读源码之前,首先准备三个问题。 什么时候开始加载配置文件? 如何读取相关配置文...

Spring声明式事务的配置~~~

/*2011年8月28日 10:03:30 by Rush  */ 环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法: 点击项目右键->Build Path->Add librarys:  打开Add Libraries对话框,然后选定 MyEclipse...

Spring Boot 异步请求和异步调用,一文搞定

一、Spring Boot中异步请求的使用 1、异步请求与同步请求     特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。 一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通...

Spring强制使用CGLIB代理事务

 Spring强制使用CGLIB代理事务   springaopjdkreferenceclasspath Spring1.2: 将事务代理工厂[TransactionProxyFactoryBean] 或 自动代理拦截器[BeanNameAutoProxyCreator] 的 proxyTargetClass 属性,设置为true,则使用CG...

spring的后置处理器——BeanPostProcessor以及spring的生命周期

后置处理器的调用时机 BeanPostProcessor是spring提供的接口,它有两个方法——postProcessBeforeInitialization、postProcessAfterInitialization。关于这两个方法的调用时机,可以参考spring源码注释。 /** * Apply this BeanPostProc...

spring定时任务原理

参考文章:https://juejin.im/post/5b64448af265da0f7f44c201 https://juejin.im/post/5e338ebae51d4558864b1ca0 1、开发中使用时要注意的点 (0)spring定时任务执行原理实际使用的是JDK自带的ScheduledExecutorService (1)spring默...

spring相关的问题和原因分析

1、Bean的初始化顺序导致的项目启动失败 现象:shua-video项目中引用了配置中台bp-config的SDK,然后在mq消息监听类中使用。如上使用方式,在waterService中引用了bp-config。在测试环境mq中没有消息消费时项目能正常启动,但在线上有消息消费时项目启动报错,提示找不到bp-config类。 @Component @Slf...

Spring使用@Async注解

    本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍。对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程...

spring注解开发:常用注解,bean的加载控制,整合第三方技术,Ioc的底层核心原理

知识点梳理 课堂讲义 1)注解驱动的意义 1.1)什么是注解驱动 使用注解的形式替代xml配置,将繁杂的配置文件从工程中彻底消除掉,简化书写,提高开发效率 1.2)注解驱动的弊端 为了达成注解驱动的目的,可能会将原先很简单的书写,变的更加复杂  XML中配置第三方开发的资源是很方便的,但使用注解驱动无法在第三方开发的资源中进行编辑,因此会增加一部分的...