如果说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>

ApplicationContext详解以及多个ApplicationContext.xml的相互引用的更多相关文章

  1. Spring官网阅读(十二)ApplicationContext详解(中)

    文章目录 1.Spring的资源(Resource) 接口简介 UML类图 抽象基类AbstractResource FileSystemResource AbstractFileResolvingR ...

  2. Spring官网阅读(十三)ApplicationContext详解(下)

    文章目录 BeanFactory 接口定义 继承关系 接口功能 1.HierarchicalBeanFactory 2.ListableBeanFactory 3.AutowireCapableBea ...

  3. XML详解:第三部分 XML解析

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. 详解Struts1中的struts-config.xml配置文件【一】

    搞清楚struts-config.xml中各项元素的作用,对于我们构建web项目有莫大的好处.<struts-config>是struts的根元素,它主要有8个子元素,DTD定义如下: & ...

  5. WebView使用详解(一)——Native与JS相互调用(附JadX反编译)

    念念不忘,必有回响,永远坚持你所坚持的! 一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家 一.基本用法 1.加载在线URL void loadUrl(String ...

  6. 详解c++指针的指针和指针的引用

    展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它.(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方 ...

  7. 开源PLM软件Aras详解七 在Aras的Method中如何引用外部DLL

    在实际的项目中,Aras内部的方法可能并不能完全满足我们,比如Office的组件,就必须引入,那么在Aras内部的Method中,我们如何引入外部Dll文件 首先,我们新建一个Dll文件,简单的Dem ...

  8. 详解c++指针的指针和指针的引用(转)

    http://www.cnblogs.com/li-peng/p/4116349.html

  9. 堆栈详解 + 彻底理解Java的值传递和引用传递

    本文旨在用最通俗的语言讲述最枯燥的基本知识 学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨 ...

随机推荐

  1. npm教程_脚手架原理以及bootstrap引入

    格式:vue init <templateName> <ProjectName> 例子:vue init webpack vue02 运行上面的命令后,脚手架帮忙按照webpa ...

  2. substring()的用法和注意事项

    作者原创:转载请注明出处 substring()方法的作用为截取字符串,其有两种用法: 分别如下: substring(int beginIndex);这个的作用为截取从beginindex位置处的元 ...

  3. Git operate

    新建远程分支和删除 https://www.jianshu.com/p/ea1dab2de419 使用git branch -a查看所有分支 远程先开好分支然后拉到本地 git checkout -b ...

  4. python ros topic demo

    发布者: #!/usr/bin/env python #coding=utf- import rospy from std_msgs.msg import String def talker():   ...

  5. MongoDB(课时29 MapReduce)

    3.7.4 MapReduce MapReduce 是整个大数据的精髓所在(实际中别用,因为在MongoDB中属于最底层操作). MapReduce是一种计算模型,简单的说就是将大批量的工作分解执行, ...

  6. Python爬虫Urllib库的高级用法

    Python爬虫Urllib库的高级用法 设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Head ...

  7. English trip -- 国际音标表

    26个字母音标表 A a [ei] B b [bi:] C c [si:] D d [di:] E e [i:] F f [ef] G g [dʒi:] H h [eit∫] I i [ai] J j ...

  8. Queue CodeForces - 353D (思维dp)

    https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...

  9. Jmeter响应中中文乱码解决办法

    在jmeter的bin目录下有一个jmeter.properties的文件,打开它,搜索sampleresult.default.encoding,把它的注释打开,也就是把最前面的#去掉,改成samp ...

  10. Oracle性能诊断艺术-读书笔记(脚本execution_plans截图)