Spring学习笔记(1)——资源加载

<!-- 占坑,迟点补充底层原理 -->

Spring支持4种资源的地址前缀

(1)从类路径中加载资源——classpath:

  classpath:和classpath:/是等价的,都是相对于类的根路径。还有一种classpath*:前缀,假设有多个jar包或文件系统类路径都拥有一个相同的文件名比如ApplicationContext.xml,classpath:只会在第一个加载ApplicationContext.xml,而classpath*:会到扫描到所有的ApplicationContext.xml。

(2)从文件系统目录中装载资源——file:

  使用UrlResource从文件系统目录中装载资源,可采用绝对或相对路径。

(3)从Web服务器中装载资源——http://

  使用UrlResource从Web服务器中装载资源。

(4)从ftp服务器中装载资源——ftp://

  使用UrlResource从ftp服务器中装载资源。

BeanFactory和ApplicationContext

BeanFactory

  Bean工厂(com.springframework.beans.factory.BeanFactory)是spring框架最核心的接口,它提供了高级IOC的配置机制。BeanFactory使管理不同类型的Java对象成为可能。应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供了更多面向应用的功能,更易于创建实际应用。我们一般称BeanFactory为IOC容器,而称ApplicationContext为上下文。但为了行文方便,我们也将ApplicationContext称为Spring容器。BeanFactory是Spring的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory。

注意:在初始化BeanFactory时,必须为其提供一种日志框架,这样启动Spring容器才不会报错。

<!--补充继承图-->

ApplicationContext

  ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中装载配置文件。

<!--补充继承图-->

  如果配置文件放在类路径下,可以优先使用ClassPathXmlApplicationContext实现类:

ApplicationContext ctx = new ClassPathXmlApplicationContext("com/bigbean/beans.xml");

  对于ClassPathXmlApplicationContext来说,"com/bigbean/beans.xml"等同于"classpath:com/bigbean/beans.xml"。

  如果配置文件放在文件系统的路径下,则可以优先考虑使用FileSystemXmlApplicationContext实现类:

ApplicationContext ctx = new FileSystemXmlApplicationContext("com/bigbean/beans.xml");

  对于FileSystemXmlApplicationContext来说,"com/bigbean/beans.xml"等同于"file:com/bigbean/beans.xml"。

  还可以指定一组配置文件,spring会自动将多个配置文件在内存中“整合”成一个配置文件。

上一篇:Linux 下安装Nginx


下一篇:读《你不知道的JavaScript(上卷)》后感-作用域闭包(二)