Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)
承接上文
IObjectPostProcessor(对象后处理器)
前提是实现接口的对象注册给当前容器
C#:
- 通过继承AbstractObjectFactory对象的AddObjectPostProcessor方法来添加
- 添加对象配置在xml中用IApplicationContext自动注册
java:
- 通过配置在Javabean的xml中用ApplicationContext自动注册
- 调用ConfigurableBeanFactory的addBeanPostProcessor方法
接口名称分别为.net的Spring.Objects.Factory.Config.IObjectPostProcessor
与Java的org.springframework.beans.factory.config.BeanPostProcessor- postProcessBeforeInitialization每个对象的初始化方法被调用之前执行
(不过在c#中必须要有初始化方法,,初始化方法可以是IInitializingObject接口
的AfterPropertiesSet方法,也可以是init-method属性指定的任意方法) - postProcessAfterInitialization在对象的初始化方法返回之后执行
- 第一个参数都是当前实例,第二个参数是在容器中的名称,返回值是当前要设置的实例
- postProcessBeforeInitialization每个对象的初始化方法被调用之前执行
第一点的第一个子接口.net的Spring.Objects.Factory.Config.IInstantiationAwareObjectPostProcessor
与Java的org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor- postProcessBeforeInstantiation如果返回值不为null是一个对象,那么就是返回这个对象,
其中的factory-method方法就是这个方法来实现的,返回null就不改变原来的对象 - postProcessAfterInstantiation返回false会阻止对对象的属性设置
- postProcessPropertyValues设置当前对象的属性,可以对在xml配置的属性再次编辑
返回值类型必须是第一个参数的对象类型
- postProcessBeforeInstantiation如果返回值不为null是一个对象,那么就是返回这个对象,
第一点的第二个子接口.net的Spring.Objects.Factory.Config.IDestructionAwareObjectPostProcessor
与Java的org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor- PostProcessBeforeDestruction为对象销毁的时候
执行顺序为:
- postProcessBeforeInstantiation
- postProcessAfterInstantiation
- postProcessPropertyValues
- postProcessBeforeInitialization(父接口)
- 调用初始化方法
- postProcessAfterInitialization(父接口)
- postProcessBeforeDestruction
- 下一篇:XI.spring的点点滴滴--IObjectFactoryPostProcessor(工厂后处理器)
- 上一篇:Ⅸ.spring的点点滴滴--IObjectFactory与IFactoryObject的杂谈
- 本文链接地址:Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)
Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)的更多相关文章
- XI.spring的点点滴滴--IObjectFactoryPostProcessor(工厂后处理器)
承接上文 IObjectFactoryPostProcessor(工厂后处理器)) 前提是实现接口的对象注册给当前容器 直接继承的对象调用这个postProcessBeanFactory方法,参数为工 ...
- Ⅶ.spring的点点滴滴--自定义对象行为
承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...
- Ⅷ.spring的点点滴滴--抽象对象和子对象
承接上文 抽象对象和子对象 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { public string Name { get; ...
- Ⅸ.spring的点点滴滴--IObjectFactory与IFactoryObject的杂谈
承接上文 ObjectFactory与IFactoryObject的杂谈 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { pu ...
- Spring.net 后处理器 可用来切换实例
.xml配置 <!--我们在Object.xml文件上将HexuObjectPostProcessor注册到上下文对象中去--> <object id="hexu" ...
- Ⅵ.spring的点点滴滴--自定义类型转换器
承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...
- Spring Bean后处理器以及容器后处理器【转】
Bean后处理器:即当spring容器实例化Bean实例之后进行的增强处理. 容器后处理器:对容器本身进行处理,并总是在容器实例化其他任何Bean之前读取配置文件的元数据并可能修改这些数据. 一.Be ...
- Ⅱ.spring的点点滴滴--对象
承接上文 对象的各种实例化 .net篇(环境为vs2012+Spring.Core.dll) 修改原来的PersonDao对象为 public class PersonDao : IPersonDao ...
- Spring框架——后处理器
Bean的后处理 Spring容器实例化Bean实例之后进行的增强处理,关于这里的描述之前有点错误,现在来纠正一下:这个过程有点像AOP,不过我们知道AOP是对方法而言的,而Bean后处理器是针对Ja ...
随机推荐
- <一> jQuery 简单介绍
jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数. 可以通过下面的标记把 jQuery 添加到网页中: <head> <script ty ...
- iOS崩溃日志分析-b
1名词解释 1.1. UUID 一个字符串,在iOS上每个可执行文件或库文件都包含至少一个UUID,目的是为了唯一识别这个文件. 1.2. dwarfdump 苹果提供的命令行工具,其中一些功能就是查 ...
- python 内建函数 filter,map和reduce
python 内建函数 filter,map和reduce, 三个函数比较类似,都是应用于序列的内置函数,常见的序列包括list.tuple.str等.而且三个函数都可以和lambda表达式结合使用. ...
- js复制黏贴
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Matlab心得及学习方法(不断更新)
Matlab心得及学习方法(不断更新) Matlab心得及学习方法(不断更新)P.S. 那些网上转载我的文章不写明出处的傻眼了吧?!老子更新了! 发现现在很多人(找工作的或者读博的)都想要学习或者正在 ...
- su: /bin/bash: Permission denied
https://bbs.archlinux.org/viewtopic.php?id=105541 New user created as: groupadd mygroupuseradd -s /b ...
- PHP reset() 函数
定义和用法 reset()函数把数组的内部指针指向第一个元素,并返回这个元素的值.若失败,则返回 FALSE. reset()函数用来将数组指针设置回数组的开始位置.如果需要在一个脚本中多次查看或处理 ...
- asp.net 中 .ASPX 与.CS文件的关系
.aspx文件继承自.cs文件 虽然一个 Web 窗体页由两个单独的文件组成,但这两个文件在应用程序运行时形成了一个整体.项目中所有 Web 窗体的代码隐藏类文件都被编译成由项目生成的动态链接库 (. ...
- 用AjaxPro实现二级联动
在实际asp.net项目中经常会遇到无刷新二级或者N级(N>=2)联动情况,其实N级联动和二级联动的原理都是一样的,实现这种办法有很多,一种是纯脚本实现(动态生成Array数组),一种 是采用微 ...
- 优化 Android 线程和后台任务开发
在 Android 开发中,你不应该做任何阻碍主线程的事情.但这究竟意味着什么呢?在这次海湾 Android 开发者大会讲座中,Ari Lacenski 认为对于长时间运行或潜在的复杂任务要特别小心. ...