work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  S.Spring源码分析

摘要:1、Bean的发展 Java Bean --> EJB --> POJO JavaBean是Applet Bean演变而来 EJB: Enterprise Java Beans (已经成为历史) POJO: Plain Ordinary Java Object 简单的JavaBean 2、为什么要使 阅读全文

posted @ 2021-03-06 18:36 work hard work smart 阅读(221) 评论(0) 推荐(0)

摘要:接上一篇文章 上一篇讲到了doGetTransaction方法 一、模板方法设计模式 这里涉及到了一个经典的设计模式:模板方法 如下图: AbstractPlatformTransactionManager实现了PlatformTranscationManager接口 DatasourceTrans 阅读全文

posted @ 2019-07-21 17:03 work hard work smart 阅读(1625) 评论(0) 推荐(0)

摘要:Spring 事务的原理 AOP 动态代理 + 声明式事务管理 + 底层数据源连接控制 ┌─────────────────────────────────────────────────────────┐ │ 1. 扫描标注 @Transactional 的类和方法 │ └──────────── 阅读全文

posted @ 2019-07-20 19:33 work hard work smart 阅读(350) 评论(0) 推荐(0)

摘要:JdkDynamicAopProxy类的invoke方法 1、获得拦截器链 进入方法 然后进入getInterceptorsAndDynamicInterceptionAdvice方法 2、递归 proceed方法 进入proceed方法 目标方法执行之前的一系列的逻辑。 所有的拦截器执行完毕后,执 阅读全文

posted @ 2019-07-20 14:38 work hard work smart 阅读(388) 评论(0) 推荐(0)

摘要:一、CgLib实现动态代理的例子 1、创建Person类 2、创建CgLibProxy 类 输出结果: Cglib通过子类实现父类的方法实现AOP 阅读全文

posted @ 2019-07-20 13:55 work hard work smart 阅读(277) 评论(0) 推荐(0)

摘要:继续上一篇的介绍 1、上一篇分析到createAopProxy方法,创建Aop代理对象 2、进入DefaultAopProxyFactory类的createAopProxy方法 3、创建代理对象后,进入getProxy方法 this.singletonInstance = getProxy(crea 阅读全文

posted @ 2019-07-14 22:47 work hard work smart 阅读(912) 评论(0) 推荐(0)

摘要:1、ProxyFactoryBean的典型配置 2、进入getObject方法 3、初始化Advisor链方法 initializeAdvisorChain 4、获得代理对象方法 getSingletonInstance 5、this.singletonInstance = getProxy(cre 阅读全文

posted @ 2019-07-14 21:02 work hard work smart 阅读(329) 评论(0) 推荐(0)

摘要:Spring AOP的原理: 1. Spring 启动扫描 Bean ↓ 2. 发现 TargetService 有切面需要代理 ↓ 3. Spring 做了一件关键的事: - 创建原始对象:new TargetService() - 创建代理对象:Proxy proxy = createProxy 阅读全文

posted @ 2019-07-14 16:29 work hard work smart 阅读(314) 评论(0) 推荐(0)

摘要:1、ApplicationContext的所在的位置如下图 2、WebApplicationContext继承ApplicationContext 3、查看WebApplicationContext的实现类,常用的是XmlWebApplicationContext XmlWebApplication 阅读全文

posted @ 2019-07-14 15:38 work hard work smart 阅读(2044) 评论(0) 推荐(0)

摘要:1、将上一篇的测试代码修改如下 输出结果: 说明person和person2是同一个对象 如果此时在beans.xml增加属性scope="prototype", 则输出结果为false 阅读全文

posted @ 2019-07-13 23:31 work hard work smart 阅读(296) 评论(0) 推荐(0)

摘要:一、创建实例 工程的结构如下图 1、创建接口 public interface Person { public void setName(String name); public String say(); } 2、创建接口实现 public class PersonImpl implements 阅读全文

posted @ 2019-07-13 23:20 work hard work smart 阅读(197) 评论(0) 推荐(0)

摘要:继续上一次的分析 XmlBeanDefinitionReader.java 中 1、registerBeanDefinitions方法 documentReader.registerBeanDefinitions(doc, createReaderContext(resource)); 注册Bean 阅读全文

posted @ 2019-07-13 16:32 work hard work smart 阅读(508) 评论(0) 推荐(0)

摘要:一、DefaultListableBeanFactory类, 里面有一个成员变量beanDefinitionMap,Bean定义对象的Map, BeanDefinition就对应XML的属性配置 /** Map of bean definition objects, keyed by bean na 阅读全文

posted @ 2019-07-01 22:21 work hard work smart 阅读(420) 评论(0) 推荐(0)

摘要:1、XmlBeanFactory 的使用,参考MyEclipse Spring 学习总结一 Spring IOC容器 2、使用DefaultListableBeanFactory和XmlBeanDefinitionReader ClassPathResource resource = new Cla 阅读全文

posted @ 2019-07-01 21:44 work hard work smart 阅读(578) 评论(0) 推荐(0)

摘要:一、下载Spring 源码 进入 https://github.com/spring-projects/spring-framework/tags 选择下载spring freamework的版本 https://repo.spring.io/release/org/springframework/ 阅读全文

posted @ 2019-06-08 21:46 work hard work smart 阅读(184) 评论(0) 推荐(0)

摘要:以下是咕泡公开课的学习笔记 一、创建工程springdemo 二、在pom中配置servlet <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</versi 阅读全文

posted @ 2018-11-21 15:03 work hard work smart 阅读(517) 评论(0) 推荐(0)