• ApplicationContext详解以及多个ApplicationContext.xml的相互引用


    如果说BeanFactory是spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。

    一、ApplicationContext类

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

    1)如果配置文件放在类路径下,直接使用ClassPathXmlApplicationContext实现类:

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

       这里的参数等同于:"classpath:com/techman/context/beans.xml"

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

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

       这里的参数等同于:"file:com/techman/context/beans.xml".

    3)如果有多个配置文件,获取ApplicationContext对象时还可以指定一组配置文件,Spring自动将多个配置文件在内存中整合成一个配置文件:

      ApplicationContext ctx=new ClassPathXmlApplicationContext(new String[]{"conf/bean1.xml","conf/bean2.xml"});

    或者ApplicationContext ctx=new ClassPathXmlApplicationContext("conf/bean*.xml");

    二、如何配置多个applicationContext.xml?

        即,在启动容器的时候如何引入多个applicationContext.xml?

        在web.xml中将applicationContext.xml作为当前web应用的初始化参数,多个applicationContext.xml用逗号隔开,也可以使用

        例如:

       

        或者

    三、一个applicationContext.xml文件如何引用另一个applicationContext.xml文件中的bean?

        在需要引用其它applicationContext.xml文件的applicationContext.xml文件中的<beans></beans>标记之间引入别人的            

        applicationContext.xml,格式如下:

        <beans>
               <import resource="applicationContext-hibernate.xml"/>
        </beans>
        (其中,<inport> 相当于Java中的导包)
        需要注意的是:
        <import resource="applicationContext-hibernatee.xml"/>这一句要放在所有bean配置的最前面。
       
    四、如何引用别人已经配置好了的bean呢?
        例如,将另外一个人配置的commonDAO注入给自己的biz中:配置如下:
       <bean id="cstServiceBiz" class="org.jb.t0821c.biz.CstServiceBiz">
              <property name="commonDAO">
                   <ref bean="commonDAO"/>
              </property>
       </bean>
      

  • 相关阅读:
    02_java基础学习_基础语法(上)01_day02总结
    EditPlus如何设置保存时不产生.bak备份文件?
    UltraEdit(UE)如何设置去掉.bak备份文件?
    如何在win10上连接苹果无线键盘
    01_java基础学习_Java概述_day01总结
    Python 提取Twitter tweets中的元素(包括text, screen names, hashtags)
    #leetcode#Path Sum II
    怎样实现广度优先遍历(BFS)
    GCD编程-串行队列与并发队列
    在对方电脑建立IPC连接, 利用IPC$入侵 运行木马
  • 原文地址:https://www.cnblogs.com/TTTTT/p/6675557.html
Copyright © 2020-2023  润新知