spring IoC学习 ------IoC容器:ApplicationContext

      ApplicationContext作为比BeanFactory更加先进的IoC容器的实现,除了对支持BeanFactory原有的功能之外,还扩展了包括BeanFactoryPostProcessor,BeanPostProcessor以及其他特殊类型bean的自动识别,容器启动后bean实例的自动初始化,国际化的信息支持,容器内事件发布等。

  ApplicationContext类型容器提供的集中实现:

  1. FileSystemXmlApplicationContext:从文件中加载bean定义以及相关资源的ApplicationContext实现。
  2. ClassPathXmlApplicatonContext:从Classpath加载bean定义以及相关资源的Applicationcontext的实现。
  3. XmlWebApplicationContext:用于web应用程序的ApplicationContext的实现。

  ApplicationContext的特有功能:

  1. 统一资源加载策略:一套基于core.io.Resource和core.io.ResourceLoaderk接口的资源抽象和加载策略。spring框架内部使用core.io.Resource接口作为所有资源的抽象和访问接口,有一下几种实现:

      ByteArrayResource:将字节数组提供的数据作为以这种资源进行封装

      ClassPathResource:实现从java应用程序的ClassPath中家挨具体资源并进行封装,可以使用指定的类加载器(ClassLoader)或者给定的内进行资源加载。

      FileSystemResource:对java.io.File进行封装,可以以文件或者URL的心事对象该类型资源进行封装。

      URLResource:通过java.net.URL进行的具体资源查找定位的实体类,内部委派URL进行具体的资源操作 

      InputStreamResource:将给定的InputStream视为一种资源的Resource实现类,较为少用

   ResourceLoader:是资源查找定位策略统一抽象,具体的资源查找定位策略则由相应的ResourceLoader实现类              给出。

      core.io.DefaultResourceLoader:默认资源查找逻辑。步骤为:

           (1)首先检查资源路径是否以classpath:前缀打头,如果是,构造ClassPathResource类型资源并返回。

        (2)若(1)不成功,(a).尝试通过URL,根据资源路径定位资源。构造UrlResource类型的资源并返回。

          (b)若不是URL,这使用getResourceByPath(String) 方法来定位,构造ClassPathResource类              型并返回

      core.io.FileSystemResourceLoader:继承了DefaultResourceLoader但是覆盖了                                        getResourceByPath(String)

      ResourcePatternResolver:批量查找的ResourceLoader

  ApplicationContext继承了ResourcePatternResolver,间接实现了ResourceLoader接口,所以每个ApplicationContext实现都可以看做一个ResourceLoader或者ResourcePatternResolver。

转载于:https://www.cnblogs.com/Qbright/archive/2012/07/18/2597184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值