摘要:
SpringMVC的原理 加载的过程 关于加载,在SpringIOC的加载过程中,并不会直接将HandlerMapping等组件给加载进去,而是在第一次请求的时候,进行初始化 SpringMVC核心类,DispatcherServlet的类图 关于DispatcherServlet的初始化过程:由H 阅读全文
摘要:
静态代理、动态代理和CGLIB 动态代理和CGLIB都是运行时构建代理对象,动态代理通过反射的方式,CGLIB通过java字节码织入继承父类的方式实现 静态代理 静态代理的核心在于,代理类和被代理的类实现同一个接口 public interface IUserService { void save( 阅读全文
摘要:
重入锁ReentrantLock详解 ReentrantLock 实现自AQS队列同步器,其字面意思是可以重复进入的锁,其功能也如其名,在一个同步代码块中,可以多次调用 lock() 进行上锁,当然也需要对其进行多次解锁,才能使同步状态归0,其它线程才能重新获得锁。 重入锁又分为非公平锁和公平锁两种 阅读全文
摘要:
getBean方法会调用到 AbstractBeanFactory 的 doGetBean() 方法中去。下面看看 AbstractBeanFactory 的类图结构 一、AbstractBeanFactory doGetBean()方法 这个代码块比较主要点在 getSingleton() 方法上 阅读全文
摘要:
Spring事务有7种传播行为: PROPAGATION_REQUIRED:Spring默认的类型,依赖型,事务之间互相依赖的,内层与外层共用一个事务(内层事务加入外层事务) PROPAGATION_SUPPORTS:外层有事务,支持内层无事务 PROPAGATION_MANDATORY:强制传播, 阅读全文
摘要:
AbstractApplicationContext.invokeBeanFactoryPostProcessors() 代码块中,让 PostProcessorRegistrationDelegate 类去执行实现 postProcessBeanFactory() 方法的逻辑👇 protecte 阅读全文
摘要:
在SpringIOC获取到BeanFactory之后,需要为BeanFactory初始化一些属性,因为此时BeanFactory中只有最基本的BeanDefinition信息,还没有解析BeanDefinition相关的工具,所以在这一步中Spring将SpEL解析器、属性编辑器、Bean后置处理器 阅读全文
摘要:
在 AbstractApplicationContext.refresh(); 的过程中,第二步为获取BeanFactory -> obtainFreshBeanFactory()。在这个方法中,Spring先创建了BeanFactory,然后通过读取XML配置文件(或者扫描Java类)的方式初始化 阅读全文
摘要:
Spring核心IOC源码解读 前言:Spring IOC容器是Spring核心的模块,阅读源码了解它的运行机制,可以更深刻地理解Spring中bean的生成原理、生命周期等。更可以了解各个Spring中接口的作用,对其理解并加以运用。 使用XML文件的方式创建SpringBean容器 ClassP 阅读全文
摘要:
1.公众号支付(js) 1.普通商户 appid:微信公众账号id mch_id:微信支付分配商户号 2.服务商模式 appid:服务商商户的APPID mch_id:微信支付分配商户号 sub_appid:微信分配的子商户公众账号ID,如需在支付完成后获取sub_openid则此参数必传。 sub 阅读全文