spring3.x
文章平均质量分 86
dylanduk
这个作者很懒,什么都没留下…
展开
-
AbstractBeanFactory获取bean周期
[code="java"]AbstractBeanFactory是IOC容器实现的骨架,当从Spring容器获取Bean时,调用的正是getBean方法。实现步骤如下 检查单例缓存 在父工厂中查找 初始化当前bean依赖的beans(depends-on) 根据scope使用不同的创建方式bean 检查获取的bean是FactoryBean类型还是普通bean...2013-05-11 22:58:42 · 112 阅读 · 0 评论 -
支持不同运行环境下的属性处理--Environment 特性
[size=large]介绍[/size] Environment架构是spring 3.1版本引入的,它代表当前应用运行环境比如servlet,porlet。主要处理两部分的内容 profiles和properties,properties将使用org.springframework.core.env.PropertyResolver解析。而Environment继承了此实现。[...2013-07-14 01:47:03 · 370 阅读 · 0 评论 -
支持开发、测试、生产环境下bean配置切换的profiles特性
[size=large]介绍[/size]Bean definition profiles是3.1版本引入的新特性。[size=large]背景[/size]它提供了一种机制:当客户端请求某一bean时,容器可以根据不同的环境注册并返回不同的bean。“environment”对不同的用户也说意义也不太一样,把应用部署在性能环境中测试时,注册的就是监控信息;或者客户A和客户B部署时...2013-07-11 12:31:40 · 299 阅读 · 0 评论 -
方法缓存
[size=x-large]介绍[/size] spring3.1之后提供了方法的缓存支持,透明的将缓存添加到应用中。这种缓存架构类似事务架构,提供了不同的缓存方案。[size=large]理解缓存架构[/size] 缓存架构的核心在于缓存Java方法,减少方法执行次数。就是说当目标方法执行时,架构会检查指定参数的方便是否已经被执行过,如果没有则执行,并缓存结果返回;否则直接返...2013-07-10 18:20:41 · 243 阅读 · 0 评论 -
基于xml schema的扩展标签
xml schema是spring 2.0版本之后引入的,在之后的2.5和3.x加入了新的元素。引入的主要动机在于:虽说spring把中一切皆为对象,但在开发人员的角度上讲,我们要在Spring中具体化或抽象化一些东西,比如具体化单值、集合;或特定于具体应用的抽象比如AOP,事务。那不得不在spring中配置一些基础设施bean。或第三方框架支持我们都使用过spring Security框架,说实...2013-07-09 13:34:50 · 135 阅读 · 0 评论 -
BeanDefinition数据流
[size=medium]BeanDefinition是Spring配置文件中bean定义的内存表现形式,我们先来看看bean的创建。在下图中不同的元素的解析路线用不同的颜色标注[color=red]主线部分[/color] [list=1][*] 实例化xmlApplicationContext[*] 实例化XmlBeanDefinitionReader[*] Resourc...原创 2013-07-08 19:41:16 · 98 阅读 · 0 评论 -
bean的创建周期回调
[size=medium]初始化回调 实现org.springframework.beans.factory.InitializingBean接口,afterPropertiesSet方法将在bean的所有属性装配好之后调用[/size] [code="xml"][/code][code="java"]public class AnotherExampleBean ...原创 2013-06-29 16:24:34 · 107 阅读 · 0 评论 -
Scope实现原理
[size=medium]内置Scope分类Singleton 每个IOC容器对一个bean定义创建唯一实例Prototype 对一个bean定义,每次请求容器都会创建新的实例Request 对一个bean定义,一次web请求会创建一个实例Session 对一个bean定义,一次web会话创建一个实例Global Session 对一个bean定义,一次porlet会话创...原创 2013-06-27 18:02:40 · 1284 阅读 · 0 评论 -
MethodInjection 动态方法替换原理
[size=medium]singleton实例依赖于prototype实例,ProtoType含义是无效的,必须钩入向Spring容器请求,也就是调用getBean方法。换句话说,我们必须改变依赖关系的注入。[/size][img]http://dl2.iteye.com/upload/attachment/0086/0504/c7ba82d0-3e2d-3db4-8542-2f2501...原创 2013-06-21 14:45:58 · 322 阅读 · 0 评论 -
支持占位符的文本解析PropertySourcesPropertyResolver
PropertyResolver 是 Environment的顶层接口,主要提供属性检索和解析带占位符的文本。bean.xml配置中的所有占位符例如${}都由它解析。通过例子代码了解它的功能和使用[code="java"]public class PropertySourcesPropertyResolverTests { private Properties testProperti...2013-07-14 18:27:15 · 309 阅读 · 0 评论