刚到新的公司,新的系统,新的框架,慢慢熟悉之后,很多问题不顺手。
系统基于struts/spring/ibatis。没有测试框架,没有强制编写测试。但一次次忍受Tomcat重起的痛苦后,决定自己搭建测试框架,测试servic/dao。
系统的配置文件布局类似于spring官网JPetstore应用,看过代码的人一定清楚它的布局:
xml 代码
- -jpetstore
- -WEB-INF
- applicationContext.xml
- dataAccessContext-local.xml
- jdbc.properties
- sql-map-config.xml
同时,spring为了顺利加载jdbc.properties/sql-map-config.xml,需要在applicationContext.xml调整一下路径
xml 代码
- <!-- spring加载ibatis配置文件时的路径设置 -->
- <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
- <property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
- <property name="dataSource" ref="dataSource"/>
- </bean>
其实这样存放配置文件的路径没有什么大碍,至少在Web Server上运行是没问题的。
创建
DaoTestBase继承AbstractTransactionalDataSourceSpringContextTests
java 代码
- public class DaoTestBase extends AbstractTransactionalDataSourceSpringContextTests {
- protected String[] getConfigLocations() {
- return new String[] {
- "classpath*:applicationContext.xml",
- "classpath*:dataAccessContext-local.xml",
- "classpath*:applicationContext-test.xml" };
- }
- }
测试类继承DaoTestBase,编写测试代码
java 代码
- public class MyDaoTest extends DaoTestBase {
- private MyDao myDao;
-
- public void testCRUD() {
-
- }
-
- public void setMyDao(MyDao myDao) {
- this.myDao= myDao;
- }
- }
- 运行MyDaoTest 时,提示applicationContext.xml/dataAccessContext-local.xml加载不到。这时候手工将applicationContext.xml/dataAccessContext-local.xml拷贝到classpath目录,文件是加载到了。
- 但是在applicationContext.xml/dataAccessContext-local.xml文件中加载jdbc.properties/sql-map-config.xml时,又存在路径问题了。
要解决问题1,其实可以在
DaoTestBase中使用URL改变查找路径的实现方式
java 代码
- private static URL appURL = ServiceTestBase.class.getClassLoader().getResource("");
但这种方式,问题2是解决不了的。除非手工修改applicationContext.xml/dataAccessContext-local.xml中的路径。
使用ant,将
applicationContext.xml、dataAccessContext-local.xml 、
jdbc.properties、sql-map-config.xml拷贝到classpath目录。同时,替换
applicationContext.xml、dataAccessContext-local.xml文件的路径属性。大致的代码为:
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="project-name" default="edit">
- <property name="src.dir" value="WebRoot/WEB-INF" />
- <property name="dist.dir" value="WebRoot/WEB-INF/classes" />
- <property name="spring.xml" value="applicationContext.xml" />
- <property name="spring-db.xml" value="dataAccessContext-local.xml" />
- <property name="ibatis.xml" value="sql-map-config.xml" />
-
- <target name="clean" description="删除dist目录下目标文件">
- <delete file="${dist.dir}/${spring.xml}" />
- <delete file="${dist.dir}/${spring-db.xml}" />
- <delete file="${dist.dir}/${ibatis.xml}" />
- </target>
-
- <target name="copy" depends="clean" description="拷贝源文件到目标目录">
- <copy file="${src.dir}/${spring.xml}" tofile="${dist.dir}/${spring.xml}" encoding="utf-8" />
- <copy file="${src.dir}/${spring-db.xml}" tofile="${dist.dir}/${spring-db.xml}" encoding="utf-8" />
- <copy file="${src.dir}/${ibatis.xml}" tofile="${dist.dir}/${ibatis.xml}" encoding="utf-8" />
- </target>
-
- <target name="edit" depends="copy" description="修改目标文件的内容">
- <replace file="${dist.dir}/${spring.xml}" token="WEB-INF/classes/jdbc.properties" value="jdbc.properties" encoding="utf-8" />
- <replace file="${dist.dir}/${spring-db.xml}" token="WEB-INF/sql-map-config.xml" value="classpath:sql-map-config.xml" encoding="utf-8" />
- </target>
- </project>
每次从cvs获取文件或本地修改spring/ibatis配置文件后,运行当前ant文件。
然后任意的运行你的测试类
运行Oracle速度慢,且受数据库记录影响。所以下一步是加入hsql。
分享到:
相关推荐
- src/main/webapp/WEB-INF:存放Web相关的配置文件,如web.xml和Spring的配置文件。 - src/main/webapp/WEB-INF/classes:存放编译后的class文件。 - src/main/webapp/WEB-INF/lib:存放第三方库的jar包。 ##### ...
在src/main/webapp/WEB-INF/spring/appServlet目录下创建servlet-context.xml文件,配置Spring MVC的处理器映射器、视图解析器等: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi...
将Spring解压缩以后,我们需要将spring-framework-2.5.6-with-dependencies\spring-framework-2.5.6\dist目录中的spring.jar复制到Web项目的WEB-INF/lib目录中。然后,我们需要复制spring-framework-2.5.6-with-...
在搭建Struts2开发环境时,必需的jar包是关键组成部分。这些jar文件包含了框架运行所需的各种类库,包括核心功能、依赖的第三方库以及配置工具等。以下是一些主要的jar包及其作用: 1. **struts2-core.jar**:这是...
本压缩包文件提供了适用于S2SH(Struts2、Spring、Hibernate)工程的无冲突Jar包,这意味着开发者无需担心版本兼容性问题,可以直接将其放入`WEB-INF\lib`目录下,用于构建或更新现有的Web应用。值得注意的是,在...
- 配置 Spring 的上下文监听器,以便在应用启动时加载 Spring 配置文件。 ```xml <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <context-param> <param-name...
- **指定JAR安装目录**:通常情况下,这些JAR包会被放置在项目的`WebRoot/WEB-INF/lib`目录下。 ##### 2. 添加TLD标签库 除了JAR包外,Spring还提供了一系列TLD标签库,用于在JSP页面中使用Spring标签。通过...
3. **配置Struts2**:在项目的`src/main/resources`目录下创建`struts.xml`文件,这是Struts2的配置文件。在此文件中,我们可以定义拦截器、结果类型、包配置等。 4. **创建Action类**:Action类是Struts2的核心...
-- 可以自定义 servlet.xml 配置文件的位置和名称,默认为 WEB-INF 目录下,名称为 [<servlet-name>]-servlet.xml,如 spring-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> ...
其中,`webapp/WEB-INF`下会有`web.xml`配置文件,`src/main/resources`下会有Spring和Mybatis的配置文件。 5. **环境配置** 开发SSM项目通常需要JDK、Maven或Gradle(构建工具)、Tomcat(应用服务器)以及MySQL...
打开src/main/webapp/WEB-INF/web.xml文件,添加如下内容: ```xml <web-app> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.example.helloworld.HelloWorldServlet</servlet-class> ...
本篇文章将详细解析在Java环境下快速搭建Spring MVC所需的关键配置文件,包括`web.xml`、`spring-mvc.xml`、`spring-service.xml`、`spring-dao.xml`以及*mapper.xml文件。 首先,`web.xml`是Java Web应用的部署...
在Spring配置文件中,我们通过`LocalSessionFactoryBean`来定义`sessionFactory`,并通过`configLocation`属性指定Hibernate配置文件的位置。 ##### 2. Struts配置文件 - **位置**:Struts配置文件一般位于项目的根...
- 创建Spring配置文件(如`applicationContext.xml`),定义Bean及其依赖关系。在本例中,`LoginService`和其实现类`LoginServiceImpl`可能需要被定义为Spring管理的Bean。 3. **Hibernate配置**: - 添加...
1. 在 `src/main/webapp/WEB-INF` 目录下创建 `web.xml` 文件,配置 DispatcherServlet 和 ContextLoaderListener: ```xml <web-app> <listener-class>org.springframework.web.context.ContextLoaderListener...
在本主题中,我们将深入探讨如何搭建和配置一个集成了Spring和Hibernate的开发环境。Spring是一个全面的Java应用框架,提供了依赖注入、AOP(面向切面编程)以及丰富的工具支持,而Hibernate则是一个强大的对象关系...
3. **配置Struts2**:在`WEB-INF`目录下创建`struts.xml`,这是Struts2的配置文件,用于定义Action类和结果页面。 4. **配置Spring**:创建`beans.xml`文件,作为Spring的配置文件,定义bean及其依赖关系。 5. **...
- **Spring配置文件**:在项目的`WEB-INF/spring/`目录下创建或修改`applicationContext.xml`文件,配置Spring的Bean管理。 - **Struts配置文件**:创建或修改项目的`WEB-INF/struts.xml`文件,配置Action和结果。 -...
-- 可以自定义 servlet.xml 配置文件的位置和名称,默认为 WEB-INF 目录下,名称为[<servlet-name>]-servlet.xml,如 spring-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> ...