微信号:javajidi_com

介绍:专注Java与Web技术的研究;分享有价值的技术;经验;关注程序员的发展.

spring ApplicationContext

2015-04-03 13:26 Java技术

如果说BeanFactory是Spring的心脏,那么ApplicationContext就是完整的身躯了。ApplicationContext由BeanFactory派生而来,提供了更多面向实际应用的功能。在BeanFactory中,很多功能需要以编程的方式实现,而在ApplicationContext中则可以通过配置的方式实现。
ApplicationContext的主要实现类是 ClassPathXmIApplicationContext和FileSystemXmIApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中装载配置文件。
和BeanFactory初始化相似,ApplicationContext的初始化也很简单,如果配置文件放
置在类路径下,用户可以优先使用ClassPathXmIApplicationContext实现类:

1
2
ApplicationContext ctx = new ClassPathXmIApplicationContext( "applicationContext.xml" );
Object bean=ctx.getBean( "beanName" );

ApplicationContext继承了HierarchicaIBeanFactory和ListableBeanFactory接口,在此基础上,还通过多个其他的接口扩展了BeanFactory的功能:
·ApplicationEventPublisher:让容器拥有发布应用上下文事件的功能,包括容器启动事件、关闭事件等。实现了ApplicationListener事件监听接口的Bean可以接收到容器事件,并对事件进行响应处理。在ApplicationContext抽象实现类
AbstractApplicationContext中,我们可以发现存在一个ApplicationEventMulticaster,它负责保存所有监听嚣,以便在容器产生上下文事件时通知这些事件监听者。
·MessageSource:为应用提供118n国际化消息访问的功能
·ResourcePatternResolver:所有ApplicationContext实现类都实现了类似于PathMatchingResourcePatternResolver的功能,可以通过带前缀的Ant风格的资源文件路径装载Spring的配置文件。
·ConfigurableApplicationContext扩展于ApplicationContext,它新增加了两个主要的方
法:refresh()和close0,让ApplicationContext具有启动、刷新和关闭应用上下文的能力。
在应用上下文关闭的惰况下调用refresh()即可启动应用上下文,在已经启动的状态下,调
用refresh0则清除缓存并重新装载配置信息,而调用close()则可关闭应用上下文。这些接
口方法为容器的控制管理带来了便利,但作为开发者,我们并不需要过多关心这些方法。


 
Java技术 更多文章 准备进入码农行业?你准备好了吗 Java是怎样运行的,你敢说真的知道? Java:怎样理解byte的最大值是2^7-1 交换思想在程序设计中的应用 Java:线程初识
猜您喜欢 屏蔽搜索引擎蜘蛛的爬行的方法 让青海学子也能拥有清华学生一样的实验环境—— IBM SuperVessel助他圆梦 关于CSS 2015年你会因此而激动的东西 Android完全退出和全局异常捕获 你有没有发现,HR总监总当不了公司CEO,为什么?