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();
		}
	}
}


使用以上的代碼,那麼就可以實現我們要做的事了。

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