WEB开发网
开发学院软件开发Java Spring 框架的设计理念与设计模式分析 阅读

Spring 框架的设计理念与设计模式分析

 2010-06-14 00:00:00 来源:WEB开发网   
核心提示: 查看原图(大图)创建好 BeanFactory 后,接下去添加一些 Spring 本身需要的一些工具类,Spring 框架的设计理念与设计模式分析(10),这个操作在 AbstractApplicationContext 的 prepareBeanFactory 方法完成,AbstractApp

查看原图(大图)

创建好 BeanFactory 后,接下去添加一些 Spring 本身需要的一些工具类,这个操作在 AbstractApplicationContext 的 prepareBeanFactory 方法完成。

AbstractApplicationContext 中接下来的三行代码对 Spring 的功能扩展性起了至关重要的作用。前两行主要是让你现在可以对已经构建的 BeanFactory 的配置做修改,后面一行就是让你可以对以后再创建 Bean 的实例对象时添加一些自定义的操作。所以他们都是扩展了 Spring 的功能,所以我们要学习使用 Spring 必须对这一部分搞清楚。

其中在 invokeBeanFactoryPostProcessors 方法中主要是获取实现 BeanFactoryPostProcessor 接口的子类。并执行它的 postProcessBeanFactory 方法,这个方法的声明如下:

清单 3. BeanFactoryPostProcessor.postProcessBeanFactory

void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) 
  throws BeansException; 

它的参数是 beanFactory,说明可以对 beanFactory 做修改,这里注意这个 beanFactory 是 ConfigurableListableBeanFactory 类型的,这也印证了前面介绍的不同 BeanFactory 所使用的场合不同,这里只能是可配置的 BeanFactory,防止一些数据被用户随意修改。

registerBeanPostProcessors 方法也是可以获取用户定义的实现了 BeanPostProcessor 接口的子类,并执行把它们注册到 BeanFactory 对象中的 beanPostProcessors 变量中。BeanPostProcessor 中声明了两个方法:postProcessBeforeInitialization、postProcessAfterInitialization 分别用于在 Bean 对象初始化时执行。可以执行用户自定义的操作。

上一页  5 6 7 8 9 10 

Tags:Spring 框架 设计理念

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接