spring加载bean的步骤

Posted SpringMVCMaven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring加载bean的步骤相关的知识,希望对你有一定的参考价值。

转载:https://www.cnblogs.com/hljmly/articles/5442778.html

 

spring加载bean的方法

  用spring的时候,需要一个applicationContext.xml文件,放到工程目录src下,每次我想获得这个xml文件里的bean的时候,就要这样写: BeanFactory beanFactory = new ClassPathXmlApplicationContext("applicationContext.xml");

  因为是放到src下,所以用的是ClassPathXmlApplicationContext这个方法来取得xml文件。但是还有没有别的方法呢?在网上搜索到一些:

  Tips1:

  BeanFactory factory = new XmlBeanFactory(new FileSystemResource("web/WEB-INF/classes/applicationContext.xml")); // 从文件系统中的xml文件载入上下文信息 ApplicationContext fx = new FileSystemXmlApplicationContext("web/WEB-INF/classes/applicationContext.xml"); // 从类路径中的xml文件载入上下文信息 ApplicationContext cx = new ClassPathXmlApplicationContext("applicationContext.xml");

  Tips2:

  //完全可以不写,只要放在classes下,spring的jar包自己会去读

  //如果参数为空,则使用默认的applicationContext.xml,如果找不到,抛出异常

  //如果参数不为空,以您的实参来确定 BEAN 文件的XML 位置

  BeanFactory beanFactory = new ClassPathXmlApplicationContext();

  Tips3:

  在给工程添加spring特征库的时候就可以把它放到指定的路径下。在工程的src下建一个config包,然后添加spring特征库,添加的时候把applicationContext.xml放到定义好的包里就好了,spring会自动配置好路径,到时候直接用就行了

  BeanFactory:提供DI功能多种实现,XMLBeanFactory 是最常用的,依赖 Resource , 有两种 Resource 实现最常用:ClassPathResource ,FileSystemResource

  ApplicationContext : 扩展了BeanFactory三种常用实现:

  ClassPathXmlApplicationContext:是从当前类路径中检索配置文件并装载它来创建容器的实例;

  FileSystemXmlApplicationContext,他也是ApplicationContext接口的实现类,它和ClassPathXmlApplicationContext类的不同就在于读 取Spring配置文件的方式。它不再从类路径中获取配置文件,而是通过参数指定配置文件的位置,可以获取类路径之外的资源。具体语法格式: ApplicationContext context = new FileSystemXmlApplicationContext(String configLocation)(configLocation,就是之你上下文放置的路径);

  XmlWebApplicationContext:从web.xml中加载

  scope有两种取值:

  1、singleton(默认值):每次调用getBean的时候返回相同的实例,在IOC容器里只创建一个实例。

  2、prototype:每次调用getBean的时候返回不同的实例,在IOC容器里创建多个实例。

  abstract取值,默认是false。

  当abstract取true时说明这是个抽象bean,没有具体的现实,不用配置type具体的实现类。可以让其他bean来继承。

  一些建议:

  1.建议查一下“import”标签,通过“import”标签可以将其它配置文件注入置当前配置文件,就类似与java的import。提这个是建议:将applicationContext.xml文件做成配置文件的集合,而文件集合中的每个文件都描述项目中具体的功能或组件,这样配置文件就比较清晰。

  2.Spring是容器,重要的不在于实现容器(实例化),而是在于使用容器。

  3.最后建议能看一下Spring的源码,一方面可以帮助了解如何使用Spring,另一方面可以帮助深入理解Spring。

以上是关于spring加载bean的步骤的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码学习~11Bean 的加载步骤详解

Spring源码学习~11Bean 的加载步骤详解

spring源码之bean加载(bean解析下篇)

Spring加载Bean流程解析

Spring源码解析——Bean加载(doCreateBean方法补充)

Spring源码解析——Bean加载(doCreateBean方法补充)