路径说明:

一、加载类目录下的配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext_test.xml")
public class MyTest1 {
@Autowired
private Type t;//获取在applicationContext_test.xml中被注入的Type实例
@Autowired
private HibernateTemplate hibernateTemplate;//获取在applicationContext_test.xml中被注入的HibernateTemplate实例 //获取Type的实例
@Test
public void getTypeInstance(){
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("classpath:applicationContext_test.xml");
System.out.println(applicationContext.getBean("type"));//Type [tid=0, tname=testName1, tcontent=无]
}
//获取HibernateTemplate的实例
@Test
public void getHibernateTemplateInstance(){
System.out.println(hibernateTemplate);//org.springframework.orm.hibernate3.HibernateTemplate@eb5d53
} }

二、加载WEF-INF目录下的配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:WebContent/WEB-INF/config/applicationContext.xml"})
public class MyTest2{ @Autowired
private HibernateTemplate hibernateTemplate;
@Autowired
private BasicDataSource dataSource;//获取hibernateTemplate
@Test
public void getHibernateTemplate(){
System.out.println(hibernateTemplate);//org.springframework.orm.hibernate3.HibernateTemplate@17ff08d
}
//获取dataSource
@Test
public void getDataSource(){
System.out.println(dataSource);//org.apache.commons.dbcp.BasicDataSource@8f9cc4
System.out.println(dataSource.getMaxWait());//
System.out.println(dataSource.getMaxActive());//
} }

重点:1.如果开发工具为myeclipse,经测试SpringJUnit4无法无法加载WEF-INF目录下的配置文件。2.即使是eclipse,在加载WEF-INF目录下的配置文件时,无法加载其中的jdbc.properties(Tomcat容器初始化ApplicationContext加载是正常的),故将其移至类目录下。

鸣谢:http://blog.csdn.net/yeohcooller/article/details/7631202

附:关于SpringJUnit4不能加载WEF-INF目录下的jdbc.properties的原因及分析

网友的回答

a君

这个问题是由于你的项目结构决定的,你把abc.properties 放在WEB-INF目录下,无路是在开发环境还是在产品使用环境,这个abc.properties的加载都是问题。 
解决的办法: 
如果可以将abc.properties文件移动到你的源文件目录下,如果你使用maven管理项目,那么缺省是src/main/resources。这样你的applicationContext.xml文件中加载属性可以用 
classpath:path/abc.properties。

b君

汗。你那在src下面就可以了。在项目发布出去。他会放到web-inf了。楼主,你要考虑一下。src下面的代码是放在那里的。源代码与发布后的代码间的关系。这些你去了解一下。这个问题就解决了。
C:\Tomcat 5.5\bin\WEB-INF\jdbc.properties 这个在tomcat启动的时候,是在bin里面启动的。他会以bin做为目录去找你指定的bin下面的WEB-INF\jdbc.properties文件。而classpath不一样。这是相对路径。会根据你的项目地址去找web-inf下面的

SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件的更多相关文章

  1. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式

    前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...

  2. Java 编程下使用 Class.forName() 加载类

    在一些应用中,无法事先知道使用者将加载什么类,而必须让使用者指定类名称以加载类,可以使用 Class 的静态 forName() 方法实现动态加载类.下面的范例让你可以指定类名称来获得类的相关信息. ...

  3. Java 编程下使用 Class.forName() 加载类【转】

    在一些应用中,无法事先知道使用者将加载什么类,而必须让使用者指定类名称以加载类,可以使用 Class 的静态 forName() 方法实现动态加载类.下面的范例让你可以指定类名称来获得类的相关信息. ...

  4. 10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则

    加载类可以使用include.require.require_once三种中的任意一种,每个关键字都有两种方法,但是这种方法的缺点是需要加载多少个php文件,就要写多少个加载类的方法.一般也就需要加载 ...

  5. 关于实现Extjs动态加载类的方式实现

    Extjs4以前的版本没有动态加载类的方式,这样开发程序的时候加载很多的js会导致加载变慢,由于本人一直使用extjs3的版本进行开发,于是简单实现了一个动态加载类的管理器,使用方式与extjs4的方 ...

  6. php面向对象加载类、常用设计模式

    加载类: include("./Ren.class.php"); include "./Ren.class.php"; 用此方法的时候include后面要加空格 ...

  7. php之类,对象(四)加载类及练习题

    一.加载类:1.命名类文件的时候每个单词首字母大写,后面缀上.class.php eg: Info.class.php 在写编码时定义类名首字母大写,定义变量名小写 eg:class Ren { pu ...

  8. PHP命名空间与自动加载类详解

    本文实例讲述了PHP命名空间与自动加载类.分享给大家供大家参考,具体如下: 今天我要给大家介绍的是PHP的命名空间 和 自动加载类 我先简单的分开演示 在放在一起 大家请看:什么是自动加载类? 想必大 ...

  9. jvm加载类(更新中)

    作为jvm的用户,从使用者角度来看,我们给jvm输入一个class文件,得到了一个Class对象.我们可以猜想下jvm加载类的过程:class文件有规定的格式,jvm去解析class文件流,读magi ...

随机推荐

  1. SQL数据库设计三范式

    关系型数据库将数据库设计需要遵循的一些规则叫做“范式”,最基本的三个范式(1NF.2NF.3NF)简称三范式.第一范式是满足第二范式的基础,而第一.二范式又是满足第三范式的基础. 第一范式 表中的字段 ...

  2. React-Native错误笔记-EPERM

    运行react-native run-android时出现错误 EPERM:operation not permitted,lstat .............. 解决办法:用Android Stu ...

  3. (转载)Nim游戏博弈(收集完全版)

    Nim游戏的概述: 还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输.后来,在一份资料上看到,这种游戏称为“拈(Nim)”.据说,它源 ...

  4. Git sparse checkout

    Git的sparse checkout在clone项目仓库时只clone指定路径下的信息. 步骤如下: (1) mkdir yourdir(2) cd yourdir(3) git init(4) g ...

  5. JAVA 基础加强学习笔记

    一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函 ...

  6. iMAC——关闭自动弹出手机照片

    有时当自己的iPhone手机插入一台iMAC电脑时,会自动弹出自己iPhone手机的照片. 这相当影响人的隐私等等,所以顺便将方法(参考网络的)小记一篇博客. 一.OS X 10.10以上用户解决办法 ...

  7. js画了一个椭圆

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. FreeCodeCamp-JS基础部分

    ---恢复内容开始--- .pop()     将数组末尾的元素移除     var removedFromMyArray=myArray.pop()     将myArray数组的最后一个元素移除并 ...

  9. FileZilla ftp服务器安装

    在官网下载server版本的FileZilla,我下载的是(The latest stable version of FileZilla Server is 0.9.41) 然后直接安装就可了,我由于 ...

  10. C#代码分层的好处

    1.对于复杂的系统,分层让代码结构清晰,便于开发人员对系统进行整体的理解.把握.如果代码没有分层,把逻辑都写在一个方法里面的代码就好比是一本没有目录的文档,要找出其中某一节都要对全文遍览一次. 2.基 ...