Spring源码
文章平均质量分 61
Spring源码讲解
sctttt
源码注释笔记(●ˇ∀ˇ●)
展开
-
Spring 事务源码解析(二)------ 事务具体拦截逻辑详解
承接上文,直接看到TransactionInterceptor类的invoike方法public Object invoke(MethodInvocation invocation) throws Throwable { // Work out the target class: may be {@code null}. // The TransactionAttributeSource should be passed the target class // as well as the原创 2021-04-14 10:54:49 · 212 阅读 · 0 评论 -
Spring 事务源码解析(一)------ 事务Advisor的生成
文章目录事务的开启事务的开启 直接看到EnableTransactionManagement注解,导入了TransactionManagementConfigurationSelector类@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(TransactionManagementConfigurationSelector.class)public @interface Enable原创 2021-04-12 14:40:28 · 399 阅读 · 0 评论 -
Spring Aop源码解析(二)------ 代理对象详解
文章目录代理对象的生成代理对象的具体拦截逻辑代理对象的生成 advisor对象已经生成完毕之前已经介绍完了,现在来看代理对象的生成,以及代理对象是如何使用advisor的。protected Object wrapIfNecessary(Object bean, String beanName, Object cacheKey) { if (StringUtils.hasLength(beanName) && this.targetSourcedBeans.contains(b原创 2021-04-10 18:17:45 · 433 阅读 · 0 评论 -
Spring Aop源码解析(一)------ Advisor的生成
文章目录aop的开启Advisor的生成aop的开启 直接看到EnableAspectJAutoProxy注解,导入了AspectJAutoProxyRegistrar类@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { /**原创 2021-04-07 17:40:39 · 467 阅读 · 2 评论 -
Spring ConfigurationClassPostProcessor类详解
文章目录 ConfigurationClassPostProcessor由AnnotationConfigApplicationContext注册成BeanDefinition到容器中,主要用来处理含有@PropertySource,@ComponentScan,@Bean,@Import,@ImportSource,@Configuration等注解的的类,ConfigurationClassPostProcessor实现了BeanDefinitionRegistryPostProcessor接口。原创 2021-04-05 18:24:06 · 389 阅读 · 1 评论 -
Spring bean的实例化源码解析(三)------ FactoryBean接口解析
文章目录 我们来看FactoryBean接口的使用@Component@Data@ToStringpublic class ZhangSan implements FactoryBean<LiSi> { @Override public LiSi getObject() { return new LiSi(); } @Override public Class<?> getObjectType() {原创 2021-04-04 11:03:56 · 127 阅读 · 0 评论 -
Spring配置文件解析源码分析
文章目录 我们可以使用占位符去从设置Bean的属性值,可以使用context:property-placeholder标签来指定我们需要使用到的配置文件,Spring解析BeanDefinition的占位符格式的属性,会从配置文件中去查找对应的值替换调原本的占位符。<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan原创 2021-04-01 12:05:42 · 239 阅读 · 0 评论 -
Spring bean的实例化源码解析(二)------ 循环依赖详解
文章目录单例循环依赖单例构造函数循环依赖单例循环依赖 我们先看一个基本的单例bean循坏依赖的现象@Component@ToString@Datapublic class LS { private String name = "LiSi"; @Autowired ZS zs; }@Component@ToString@Datapublic class ZS { private String name = "ZhangSa原创 2021-03-30 13:59:53 · 198 阅读 · 2 评论 -
Spring bean的实例化源码解析(一)------ 单例bean的实例化
Spring bean的实例化源码解析 之前我们已经知道beanDefinition对象的生成,那么它最后如何实例化供我们调用的呢,我们来看Spring实例化bean的源码。public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prep原创 2021-03-29 11:47:27 · 352 阅读 · 1 评论 -
Spring 事件监听源码分析
Spring事件监听源码分析我们接着分析refresh()方法中的事件监听的源码部分。@Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRefresh(); //标签解析看过了 //原创 2021-03-26 16:49:20 · 126 阅读 · 0 评论 -
Spring invokeBeanFactoryPostProcessors,registerBeanPostProcessors方法解析
invokeBeanFactoryPostProcessors源码分析 上文我们讲到了Spring标签解析的源码。这次来invokeBeanFactoryPostProcessors方法。主要是对实现BeanDefinitionRegistryPostProcessor,BeanFactoryPostProcessor接口的bean提前实例化,并且调用该接口的方法。public void refresh() throws BeansException, IllegalStateException {原创 2021-03-25 15:35:06 · 334 阅读 · 1 评论 -
Spring标签解析源码
Spring标签解析Spring默认标签解析<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www原创 2021-03-23 18:45:40 · 247 阅读 · 1 评论