Spring源码
文章平均质量分 89
「已注销」
这个作者很懒,什么都没留下…
展开
-
Spring 事务源码分析——Hibernate篇
在Spring与Hibernate整合的时候,可以利用Spring的事务管理机制,为我们管理事务的开启、提交、回滚等操作。这样的方式极大的减少了我们的代码量,让我们只专注于业务代码的编写。在使用Hibernate的时候,每一个操作都要经历事务开启与提交这样的操作,他们在业务代码的周围,这样来看是不是就想到了AOP编程,把这部分代码抽取出来。没错,Spring正是这样做的,Spring的事务管理就是原创 2015-08-26 18:40:20 · 3004 阅读 · 1 评论 -
1 IOC容器设计与实现
在Spring IOC容器的设计中,可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能;另一个是ApplicationContext应用上下文,它作为容器的高级形态而存在。应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境做了许多适配。1 BeanFactory1.1 BeanFactory的应用场原创 2015-07-19 08:55:00 · 1063 阅读 · 0 评论 -
2 IOC容器初始化过程
IOC容器的初始化分为三个过程实现:第一个过程是Resource资源定位。这个Resouce指的是BeanDefinition的资源定位。这个过程就是容器找数据的过程,就像水桶装水需要先找到水一样。第二个过程是BeanDefinition的载入过程。这个载入过程是把用户定义好的Bean表示成Ioc容器内部的数据结构,而这个容器内部的数据结构就是BeanDefition。第三原创 2015-07-25 21:00:36 · 8823 阅读 · 2 评论 -
3 IoC容器的依赖注入(1)
在applicationContext加载的时候,已经将BeanDefition保存在一个concurrentHashMap中,然而这些并不是真正的bean,真正的bean其实还没有初始化以及依赖注入。对于整个依赖注入的过程,大致可以分为两个阶段,第一阶段是Bean的初始化,如何采用设值注入的方式,那么这个阶段就是利用默认构造器去构造一个空对象,等待着注入;如果是构造注入,那么这个过程可能就会原创 2015-08-01 10:43:34 · 1970 阅读 · 0 评论 -
Spring 循环引用 ——理解singleton与prototype初始化的区别
spring的循环引用解决机制 以及singleton与prototype能否实现循环引用的原因。原创 2015-08-02 09:36:40 · 11485 阅读 · 0 评论 -
Spring AOP原理
Spring利用动态代理技术实现了AOP增强功能。这个动态代理是通过Java的动态代理或CGLIB技术实现。具体根据代理对象实现的是类或者接口来决定。Spring AOP的过程跟我们平时使用动态代理的过程是很相似的,只不过它帮助我们自动组装了增强方法与代理对象,这样我们就可以更加灵活,因为我们可以选择增强触发的时机,而且更加关注我们要做的事情。从原理以及源代码的角度,整个过程还是分为两个阶段,原创 2015-08-21 20:01:47 · 3656 阅读 · 0 评论 -
Spring Hibernate 开启事务
仅仅记录一下配置文件<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.sp原创 2015-08-19 19:48:17 · 2722 阅读 · 0 评论 -
4 IoC容器的依赖注入(2)
相对于Bean的创建过程,注入过程显得简单而清晰的多。注入的过程整体分为两个阶段:第一个阶段是依据BeanDefition定义的property找到相关的属性值,这个过程中如果定义了autowireByName 或者autowireByType 优先进行这两个定义的查找,然后进行正常匹配,也就是我们定义的,这个部分会覆盖掉autowire的内容。以上所有找到的属性值都会放到一个deepc原创 2015-08-08 09:15:56 · 888 阅读 · 0 评论