承接上文

IObjectPostProcessor(对象后处理器)


前提是实现接口的对象注册给当前容器

C#:

  1. 通过继承AbstractObjectFactory对象的AddObjectPostProcessor方法来添加
  2. 添加对象配置在xml中用IApplicationContext自动注册

java:

  1. 通过配置在Javabean的xml中用ApplicationContext自动注册
  2. 调用ConfigurableBeanFactoryaddBeanPostProcessor方法
  1. 接口名称分别为.net的Spring.Objects.Factory.Config.IObjectPostProcessor
    与Java的org.springframework.beans.factory.config.BeanPostProcessor

    1. postProcessBeforeInitialization每个对象的初始化方法被调用之前执行
      (不过在c#中必须要有初始化方法,,初始化方法可以是IInitializingObject接口
      的AfterPropertiesSet方法,也可以是init-method属性指定的任意方法)
    2. postProcessAfterInitialization在对象的初始化方法返回之后执行
    3. 第一个参数都是当前实例,第二个参数是在容器中的名称,返回值是当前要设置的实例
  2. 第一点的第一个子接口.net的Spring.Objects.Factory.Config.IInstantiationAwareObjectPostProcessor
    与Java的org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor

    1. postProcessBeforeInstantiation如果返回值不为null是一个对象,那么就是返回这个对象,
      其中的factory-method方法就是这个方法来实现的,返回null就不改变原来的对象
    2. postProcessAfterInstantiation返回false会阻止对对象的属性设置
    3. postProcessPropertyValues设置当前对象的属性,可以对在xml配置的属性再次编辑
      返回值类型必须是第一个参数的对象类型
  3. 第一点的第二个子接口.net的Spring.Objects.Factory.Config.IDestructionAwareObjectPostProcessor
    与Java的org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor

    1. PostProcessBeforeDestruction为对象销毁的时候

执行顺序为:

  1. postProcessBeforeInstantiation
  2. postProcessAfterInstantiation
  3. postProcessPropertyValues
  4. postProcessBeforeInitialization(父接口)
  5. 调用初始化方法
  6. postProcessAfterInitialization(父接口)
  7. postProcessBeforeDestruction

Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)的更多相关文章

  1. XI.spring的点点滴滴--IObjectFactoryPostProcessor(工厂后处理器)

    承接上文 IObjectFactoryPostProcessor(工厂后处理器)) 前提是实现接口的对象注册给当前容器 直接继承的对象调用这个postProcessBeanFactory方法,参数为工 ...

  2. Ⅶ.spring的点点滴滴--自定义对象行为

    承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...

  3. Ⅷ.spring的点点滴滴--抽象对象和子对象

    承接上文 抽象对象和子对象 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { public string Name { get; ...

  4. Ⅸ.spring的点点滴滴--IObjectFactory与IFactoryObject的杂谈

    承接上文 ObjectFactory与IFactoryObject的杂谈 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { pu ...

  5. Spring.net 后处理器 可用来切换实例

    .xml配置 <!--我们在Object.xml文件上将HexuObjectPostProcessor注册到上下文对象中去--> <object id="hexu" ...

  6. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  7. Spring Bean后处理器以及容器后处理器【转】

    Bean后处理器:即当spring容器实例化Bean实例之后进行的增强处理. 容器后处理器:对容器本身进行处理,并总是在容器实例化其他任何Bean之前读取配置文件的元数据并可能修改这些数据. 一.Be ...

  8. Ⅱ.spring的点点滴滴--对象

    承接上文 对象的各种实例化 .net篇(环境为vs2012+Spring.Core.dll) 修改原来的PersonDao对象为 public class PersonDao : IPersonDao ...

  9. Spring框架——后处理器

    Bean的后处理 Spring容器实例化Bean实例之后进行的增强处理,关于这里的描述之前有点错误,现在来纠正一下:这个过程有点像AOP,不过我们知道AOP是对方法而言的,而Bean后处理器是针对Ja ...

随机推荐

  1. tableView -- tips

    1. 如果发现TableView的第一个sectionHeader不显示, 那么可以断定, 你没有用代理方法来设置 sectionHeader的高度! #pragma mark - delegate ...

  2. Jquery animate的使用方法

    js: $('#colspan').click(function () { if ($('#colspan').hasClass('glyphicon-chevron-up')) { $('#cols ...

  3. Google考虑抛弃Cookies机制

    根据华尔街日报的报道,Google 正在考虑抛弃古老的浏览器 cookies 来追踪用户信息的机制.作为替代,Google 将开发一种「个人匿名标识机制」.Google 早前已经计划在 IE 和 iP ...

  4. PHP之关闭网页错误提示

    关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法 最简单的办法就是直接在php程序代码 ...

  5. 理解 Android 本地数据存储 API

    利用首选项.SQLite 和内部及外部内存 API 对于需要跨应用程序执行期间或生命期而维护重要信息的应用程序来说,能够在移动设备上本地存储数据是一种非常关键的功能.作为一名开发人员,您经常需要存储诸 ...

  6. Android 共享文件的 Runtime 权限

    在开发 Android 应用时,总会涉及到获取打电话.地理位置.网络等敏感的用户信息的权限,在 Android 中,联系人.当前位置等这些敏感信息都是由 permissions 保护的,Android ...

  7. Linux巡检

    # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostn ...

  8. Vector 的清空

    前两天比赛有一道题,有用到了vector的清空,用的是swap,我一开始还不太清楚,所以去查了下资料,转载一篇关于vector的清空的. vector <int> vecInt; ; i& ...

  9. 乱序双发射 和 GHB的分支预测

    乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术.比方Core乱序执行引擎说程序某一段有7 条指令,此时CPU ...

  10. 控件动态产生器(使用RegisterClasses提前进行注册)

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...