Spring的Junit测试
2013-08-24 15:32
246 查看
package com.test; import static org.junit.Assert.*; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.spring.controller.UserController; public class springtest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void test() { fail("Not yet implemented"); /* ClassPathXmlApplicationContext 这个类,默认获取的是WEB-INF/classes/下的路径, 也就是在myeclipse的src下的路径,所以用这个是获取不到WEB-INF下的配置文件的... */ //AbstractApplicationContext ctx=new ClassPathXmlApplicationContext("/WebContent/WEB-INF/spring/appServlet/spring-mvc.xml"); AbstractApplicationContext ctx=new FileSystemXmlApplicationContext("/WebContent/WEB-INF/spring/appServlet/spring-mvc.xml"); UserController user=(UserController) ctx.getBean("userController"); user.UserRegister(); } }
下面是几个用法,引src下的一个文件,有以下几种方式
BeanFactory ac = new ClassPathXmlApplicationContext("applicationContext.xml");
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
BeanFactory ac = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");
ac.getBean("beanID");
classpath:和classpath*:的区别:
classpath: 只能加载一个配置文件,如果配置了多个,则只加载第一个
classpath*: 可以加载多个配置文件,如果有多个配置文件,就用这个
BeanFactory ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext-test.xml"});
BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:/applicationContext*.xml");
BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:src/folder/applicationContext*.xml");
FileSystemXmlApplicationContext
这个类,默认获取的是项目路径,就是项目名的这级.但是我测试,在myeclipse下,执行main方法,获取配置文件,路径用WebRoot/WEB-INF/是没问题的,但是发布到tomcat下,就怎么配都不成功了,无奈,只能把配置文件全部移到src下了,因为担心发布到linux上后,又出现路径问题
下面是几个用法,引WEB-INF下的一个文件,有以下几种方式
BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext.xml");
其中,FileSystemXmlApplicationContext的起始路径是项目路径,所以可以直接这样写WebRoot/WEB-INF
如果前边加了file:则说明后边的路径就要写全路径了,就是绝对路径
下面是几个用法,引WEB-INF/classes下的一个文件,有以下几种方式
BeanFactory factory = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
这其实跟ClassPathXmlApplicationContext是一样的,多个就加通配符
下面是几个用法,引WEB-INF下的多个文件,有以下几种方式
BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"WebRoot/WEB-INF/applicationContext.xml","WebRoot/WEB-INF/applicationContext-test.xml"});
BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext*.xml");
BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext*.xml");
引WEB-INF/classes下的多个文件,也是一样的
BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"classpath:applicationContext.xml","classpath:applicationContext*.xml"});
BeanFactory factory = new FileSystemXmlApplicationContext("classpath*:applicationContext*.xml");
相关文章推荐
- [转载+原创] spring junit 测试
- spring junit 测试 (二)
- maven spring项目 使用junit测试,出现SpringJunit4Runner的问题
- spring junit 部署两套测试方案
- Spring与junit测试
- springboot下配置junit测试环境
- 基于spring和mybatis项目的JUnit测试用例的实现
- junit3测试spring下的service层
- SpringBoot中Junit测试注入Bean失败的解决方法
- Junit测试Spring应用Dubbo测试框架之-Excel 工具类
- Junit测试的羽翼Spring-test
- junit测试spring整合ActiveMQ编写消费者代码报错:org.springframework.beans.factory.BeanCreationException: Error crea
- spring中 使用JUnit4 测试 代码[模拟服务器启动]
- maven+spring+junit测试程序时时出现NoSuchMethodError错误
- spring - 使用 IDEA编译工具: Junit测试
- SpringBoot建立父pom和JUnit代码测试
- spring+mybatis+junit测试问题
- spring 集成junit做测试
- activiti5 Junit4 Spring测试环境搭建
- 用JUnit测试Spring中的配置,需要使用ApplicationContext