Spring中解析xml配置文件以及Bean实例化后的存放位置和Bean声明周期的管理

配置文件的加载方式,bean被实例化后的存放位置
    Spring容器不只是一个,自带了多个容器,可以归纳为两种类型
        1.beanFactory,由org.springframework. beans.factory.BeanFactory接口定义是最简单的容器,提供基本的DI支持.
        2. 应用上下文(由org.springframework.context.ApplicationContext接口定义) 基于BeanFactory构建, 并提供应用框架级别的服务, 例如从属性文件解析文本信息以及发布应用事件给感兴趣的事件监听者。
        bean工厂对大多数应用来说往往太低级了, 因此, 应用上下文要比bean工厂更受欢迎
    Spring 自带多种类型的应用上下文:
        1.AnnotationConfigApplicationContext: 从一个或多个基于Java的配置类中加载Spring应用上下文
        2.AnnotationConfigWebApplicationContext: 从一个或多个基于Java的配置类中加载Spring Web应用上下文。
        3.ClassPathXmlApplicationContext: 从类路径下的一个或多个XML配置文件中加载上下文定义, 把应用上下文的定义文件作为类资源。
        4.FileSystemXmlapplicationcontext: 从文件系统下的一个或多个XML配置文件中加载上下文定义。
        5.XmlWebApplicationContext: 从Web应用下的一个或多个XML配置文件中加载上下文定义。
    无论是从文件系统中装载应用上下文还是从类路径下装载应用上下文, 将bean加载到bean工厂的过程都是相似的。 例如, 如下代码展示了如何加载一个FileSystemXmlApplicationContext:
        ApplicationContext context = new FileSystemXmlapplicationcontext("C:/spring.xml");
    类似地, 你可以使用ClassPathXmlApplicationContext从应用的类路径下加载应用上下文:
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    使用FileSystemXmlApplicationContext和使用ClassPathXmlApp-licationContext的区别在于: FileSystemXmlApplicationContext在指定的文件系统路径下查找knight.xml文件;
    而ClassPathXmlApplicationContext是在所有的类路径(包含JAR文件) 下查找 knight.xml文件。
    如果你想从Java配置中加载应用上下文, 那么可以使用AnnotationConfig-ApplicationContext:
        ApplicationContext context = new AnnotationConfigApplicationContext(com.Config.class);
    应用上下文准备就绪之后, 我们就可以调用上下文的getBean()方法从Spring容器中获取bean。
    
    生命周期的管理:

Spring中解析xml配置文件以及Bean实例化后的存放位置和Bean声明周期的管理

Spring中解析xml配置文件以及Bean实例化后的存放位置和Bean声明周期的管理