web项目Spring框架下虚拟测试端编写

后台模拟测试

    现行web开发使用mvc分层模式下往往页面,与底层分开来进行开发,那么如何在没有页面的情况下进行测试哪?

    首先要明确一点 Spring框架下的类属性的初始化,是在程序加载.xml文件中进行的。


 

public class RunInfoModuleHandle {
	
	private static Log log = LogFactory.getLog(RunInfoModuleHandle.class);
	
	
	private BiztxlogDAO biztxlogDAO;
	private DailyInfoListDAO dailyInfoListDAO;
	private ReportRemedyDAO reportRemedyDAO;
	
	private PosBiztxlogDAO posBiztxlogDAO;
	private PosBizDailyDAO PosBizDailyDAO;
	private PosReportRemedyDAO 
 
	public ReportRemedyDAO getReportRemedyDAO() {
		return reportRemedyDAO;
	}

	public void setReportRemedyDAO(ReportRemedyDAO reportRemedyDAO) {
		this.reportRemedyDAO = reportRemedyDAO;
	}


 



新建一个对象,一般 ReportRemedyDAO reportRemedyDAO = new ReportRemedyDAO();

不过在spring框架下,根据配置文件

<bean id="runInfoModuleHandle"

class="com.zjft.xconsole.common.tcp.RunInfoModuleHandle">

<property name="biztxlogDAO" ref="BiztxlogDAO"></property>

<property name="dailyInfoListDAO" ref="DailyInfoListDAO"></property>

<property name="reportRemedyDAO" ref="ReportRemedyDAO"></property>

<property name="posBiztxlogDAO" ref="PosBiztxlogDAO"></property>

<property name="posBizDailyDAO" ref="PosBizDailyDAO"></property>

<property name="posReportRemedyDAO" ref="PosReportRemedyDAO"></property>

</bean>

完成了new 的功能。

       那么回到刚刚的问题,分层开发中如何进行测试。很多同学会说main方法就可了,没错,不过读过刚刚的初始化问题,相信大家应该明白,不光有main就可以了。

下面为大家介绍2个类的使用:ClassPathXmlApplicationContextFileSystemXmlApplicationContext:获得Spring中定义的Bean实例(对象).

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO");

如果是两个以上:
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","dao.xml"});

或者用通配符:
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");

注意:ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]

            FileSystemXmlApplicationContext可以取到任意路径下文件,不过需要配置路径。

           对于FileSystemXmlApplicationContext:
           默认表示的是两种:

          1.没有盘符的是项目工作路径,即项目的根目录;
          2.有盘符表示的是文件绝对路径.

         如果要使用classpath路径,需要前缀classpath:

spring中对bean的管理有两种类型 ApplicationContextBeanFactory 
ApplicationContext在容器启动时候会全部初始化bean,而factory只会在调用get“abc”)时候才会初始化

那么我们就可以用main函数来测试了。

 

import javax.faces.application.Application;
import org.apache.xbean.spring.context.FileSystemXmlApplicationContext;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zjft.xconsole.common.tcp.RunInfoModuleHandle;
public class KoalaServerStart {
    /**
     * @param args
     */
	public static void main(String[] args) {
		try {
			System.out.println("application begin start, please wait......");
			BeanFactory  appContext = new FileSystemXmlApplicationContext(
			"WEB-INF/data.xml");
			RunInfoModuleHandle app = (RunInfoModuleHandle) appContext.getBean("runInfoModuleHandle");
			
			app.impDailyInfo();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


使用以上的代码,那么就可以实现我们要做的事了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章