Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          整合iBATIS和Spring在WEB開發中的應用(轉)

          原文:http://www.ruanxun.com/HArticle86951.aspx

          本文將以一個實際例子來講解整合iBATIS和Spring在WEB開發中的應用。在例子中,將應用DAO,FACADE這些常用的設計模式。

          1、需求說明

              假定我們要實現一個用戶注冊和登錄的需求。注冊時將用戶信息保存到數據庫,登錄時使用注冊的信息進行校驗。


          2、數據庫設計

              我們建2個表,一個存放基本的用戶信息(T_USERS),一個放附加的信息(T_USER_INFO)。這2個表是1對1的關系,其實可以只建一個表,但在實際的開發中,我們常常會把它們拆分,把常用的信息放到主表中,不常用的放到輔表中,這樣可以提升性能。本文使用的數據庫是ORACLE,表結構如下:

          T_USERS 用戶信息主表
          字段名 字段說明 字段類型
          userid 用戶在系統中的流水號,為PRIMARY KEY NUMBER(6,0) NOT NULL
          ualias 用戶別名,在登錄時輸入的名字 VARCHAR2(20) NOT NULL
          password 密碼 VARCHAR2(30) NULL
          realname 真實姓名 VARCHAR2(20) NULL
          email email VARCHAR2(30) NOT NULL
          usertypeid 用戶類型 CHAR(2) NOT NULL
          SQL
          CREATE TABLE T_USERS (
            userid NUMBER(6,0) NOT NULL,
            usertypeid CHAR(2) NOT NULL,
            ualias VARCHAR2(20) NOT NULL,
            password VARCHAR2(30) NULL,
            email VARCHAR2(30) NOT NULL,
            realname VARCHAR2(20) NULL
          );
          CREATE UNIQUE INDEX XAK1T_USERS ON T_USERS
          (  ualias ASC );
          CREATE UNIQUE INDEX XAK2T_USERS ON T_USERS
          ( email ASC );
          ALTER TABLE T_USERS ADD ( PRIMARY KEY (userid) ) ;

          T_USER_INFO 用戶信息輔表
          字段名 字段說明 字段類型
          userid 用戶在系統中的流水號為KEY NUMBER(6,0) NOT NULL
          regdate 注冊日期 DATE NULL
          lastlogdate 最近一次登錄日期 DATE NULL
          logtimes 登錄次數 NUMBER(6) NULL
          SQL
          CREATE TABLE T_USER_INFO (
              userid NUMBER(6,0) NOT NULL,
              regdate DATE NULL,
              lastlogdate DATE NULL,
              logtimes NUMBER(6) NULL
          );
          ALTER TABLE T_USER_INFO ADD ( PRIMARY KEY (userid) ) ;
          ALTER TABLE T_USER_INFO ADD ( FOREIGN KEY (userid) REFERENCES T_USERS ) ;



          SEQUENCE Sequence_userid 用戶流水號產生
          SQL
          CREATE SEQUENCE Sequence_userid
          INCREMENT BY 1
          START WITH 1
          MAXVALUE 999999
          MINVALUE 1
          NOCYCLE
          NOORDER
          ;


           

          3、構建源代碼包目錄

            com(1)
              |-wysm(2)
                |-netstar(3)
                  |-domain(4) (POJO)
                  |-persistence(4) (持久化層)
                    |-iface(5) (DAO 接口)
                    |-sqlmapdao(5) (iBATIS DAO實現)
                      |-sql(6) (iBATIS sqlmap定義文件)
                  |-service(4) (FACADE接口)
                    |-ibatis(5) (FACADE iBATIS實現)
                 |-test(4)(JAVA環境測試)


          4、iBATIS sqlmap定義

          com.wysm.netstar.persistence.sqlmapdao.sql/sql-map-config.xml
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
              "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
          <sqlMapConfig>
            <properties resource="com/wysm/netstar/properties/database.properties"/>
            <transactionManager type="JDBC">
              <dataSource type="SIMPLE">
                <property value="${driver}" name="JDBC.Driver"/>
                <property value="${url}" name="JDBC.ConnectionURL"/>
                <property value="${username}" name="JDBC.Username"/>
                <property value="${password}" name="JDBC.Password"/>
              </dataSource>
            </transactionManager>
            <sqlMap resource="com/wysm/netstar/persistence/sqlmapdao/sql/User.xml"/>
            <sqlMap resource="com/wysm/netstar/persistence/sqlmapdao/sql/Sequence.xml"/>
            <sqlMap resource="com/wysm/netstar/persistence/sqlmapdao/sql/UserInfo.xml"/>
          </sqlMapConfig>
           
          數據庫連接屬性文件 com.wysm.netstar.properties.database.properties
          ####################################
          # Database Connectivity Properties
          ####################################
          driver=oracle.jdbc.driver.OracleDriver
          url=jdbc:oracle:thin:@localhost:1521:ORA92SER
          username=netstar
          password=netstar
           
           
          com.wysm.netstar.persistence.sqlmapdao.sql/Sequence.xml
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
              "http://ibatis.apache.org/dtd/sql-map-2.dtd">
          <sqlMap namespace="Sequence">
            <select id="getSequenceUserId" resultClass="int">
              select sequence_userid.nextval from dual
            </select>
          </sqlMap>
           
          com.wysm.netstar.persistence.sqlmapdao.sql/User.xml
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
          "http://ibatis.apache.org/dtd/sql-map-2.dtd">
          <sqlMap namespace="User">
          <typeAlias alias="user" type="com.wysm.netstar.domain.User"/>
          <select id="getUserByUserAlias" resultClass="user" parameterClass="string">
            SELECT
              USERID as userId,
              UALIAS as userAlias,
              PASSWORD as password,
              REALNAME as realName,
              EMAIL as email,
              USERTYPEID as userTypeId
            FROM T_USERS
            WHERE UALIAS = #userAlias#
          </select>
          <select id="getUserByUserAliasAndPassword" resultClass="user" parameterClass="user">
            SELECT
              USERID as userId,
              UALIAS as userAlias,
              PASSWORD as password,
              REALNAME as realName,
              EMAIL as email,
              USERTYPEID as userTypeId
            FROM T_USERS
            WHERE UALIAS = #userAlias# AND
              PASSWORD = #password#
          </select>
          <select id="getUserByEmail" resultClass="user" parameterClass="string">
            SELECT
              USERID as userId,
              UALIAS as userAlias,
              PASSWORD as password,
              REALNAME as realName,
              EMAIL as email,
              USERTYPEID as userTypeId
            FROM T_USERS
            WHERE EMAIL=#email#
          </select>
          <update id="updateUser" parameterClass="user">
            UPDATE T_USERS SET
              UALIAS= #userAlias#,
              PASSWORD=#password#,
              REALNAME=#realName#,
              EMAIL = #email#,
              USERTYPEID = #userTypeId#
            WHERE USERID = #userId#
          </update>
          <insert id="insertUser" parameterClass="user">
            INSERT INTO T_USERS
              (USERID,
                UALIAS,
                PASSWORD,
                REALNAME,
                EMAIL,
                USERTYPEID)
              VALUES
                (#userId#, #userAlias#,#password#,#realName#, #email#, #userTypeId#)
          </insert>
          <delete id="deleteUser" parameterClass="int">
          DELETE FROM T_USERS
            WHERE USERID=#userId#
          </delete>
          <select id="existUserId" parameterClass="int">
          select count(*) FROM T_USERS
            WHERE USERID=#userId#
          </select>
          </sqlMap>
          com.wysm.netstar.persistence.sqlmapdao.sql/UserInfo.xml
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
          "http://ibatis.apache.org/dtd/sql-map-2.dtd">
          <sqlMap namespace="User">
          <typeAlias alias="userInfo" type="com.wysm.netstar.domain.UserInfo"/>
          <select id="getUserInfoByUserId" resultClass="userInfo" parameterClass="int">
            SELECT
              USERID,
              REGDATE,
              LASTLOGDATE,
              LOGTIMES
              FROM T_USER_INFO
            WHERE USERID = #userId#
          </select>
          <update id="updateUserInfo" parameterClass="userInfo">
            UPDATE T_USER_INFO SET
              REGDATE= #regDate#,
              LASTLOGDATE=#lastLogDate#,
              LOGTIMES=#logTimes#
            WHERE USERID = #userId#
          </update>
          <insert id="insertUserInfo" parameterClass="userInfo">
            INSERT INTO T_USER_INFO
              (USERID,
              REGDATE,
              LASTLOGDATE,
              LOGTIMES)
            VALUES
              (#userId#, #regDate#,#lastLogDate#,#logTimes#)
          </insert>
          <delete id="deleteUserInfo" parameterClass="int">
            DELETE FROM T_USER_INFO
              WHERE USERID=#userId#
          </delete>
          </sqlMap>

           

          5、POJO定義

          com.wysm.netstar.domain.User.java
          package com.wysm.netstar.domain;

          import java.io.*;

          public class User implements Serializable {
              private Integer userId;
              private String userAlias;
              private String password;
              private String realName;
              private String email;
              private String userTypeId;
              public User() {
              }

              public User(Integer userId) {
                  this.userId=userId;
              }

              public User(String userAlias) {
                  this.userAlias=userAlias;
              }

              public User(String userAlias,String password) {
                  this.userAlias=userAlias;
                  this.password=password;
              }

              public void setUserId(Integer userId) {
                  this.userId = userId;
              }

              public void setUserAlias(String userAlias) {
                  this.userAlias = userAlias;
              }

              public void setPassword(String password) {
                  this.password = password;
              }

              public void setUserTypeId(String userTypeId) {

                  this.userTypeId = userTypeId;
              }

              public void setRealName(String realName) {
                  this.realName = realName;
              }

              public void setEmail(String email) {
                  this.email = email;
              }

              public Integer getUserId() {
                  return userId;
              }

              public String getUserAlias() {
                  return userAlias;
              }

              public String getPassword() {
                  return password;
              }

              public String getUserTypeId() {

                  return userTypeId;
              }

              public String getRealName() {
                  return realName;
              }

              public String getEmail() {
                  return email;
              }
          }
           


          com.wysm.netstar.domain.UserInfo.java
          package com.wysm.netstar.domain;
          import java.util.*;
          import java.io.Serializable;
          public class UserInfo implements Serializable {
              private Integer userId;
              private Date regDate;
              private Date lastLogDate;
              private Integer logTimes;
              public UserInfo() {
              }
              public void setUserId(Integer userId) {
                  this.userId = userId;
              }
              public void setRegDate(Date regDate) {
                  this.regDate = regDate;
              }
              public void setLastLogDate(Date lastLogDate) {
                  this.lastLogDate = lastLogDate;
              }
              public void setLogTimes(Integer logTimes) {
                  this.logTimes = logTimes;
              }
              public Integer getUserId() {
                  return userId;
              }
              public Date getRegDate() {
                  return regDate;
              }
              public Date getLastLogDate() {
                  return lastLogDate;
              }
              public Integer getLogTimes() {
                  return logTimes;
              }
          }


           

          6、DAO接口定義

          com.wysm.netstar.persistence.iface.BaseDao.java
          package com.wysm.netstar.persistence.iface;
          public interface BaseDao {
          }
           


          com.wysm.netstar.persistence.iface.SequenceDao.java
          package com.wysm.netstar.persistence.iface;
          public interface SequenceDao extends BaseDao {
              Integer getSequenceUserId();
          }



          com.wysm.netstar.persistence.iface.UserDao.java
          package com.wysm.netstar.persistence.iface;

          import com.wysm.netstar.domain.User;
          import java.util.List;

          public interface UserDao extends BaseDao  {
              public abstract List getUser(String userAlias);
              public abstract List getUserByEmail(String email);
              public abstract List getUser(String userAlias,String password);
              public abstract void insertUser(User user);
              public abstract void updateUser(User user);
              public abstract boolean existUserId(Integer userid);
          }


          com.wysm.netstar.persistence.iface.UserInfoDao.java
          package com.wysm.netstar.persistence.iface;

          import com.wysm.netstar.domain.UserInfo;

          public interface UserInfoDao extends BaseDao  {
              public abstract UserInfo getUserInfo(Integer userId);
              public abstract void insertUserInfo(UserInfo userInfo);
              public abstract void updateUserInfo(UserInfo userInfo);
          }
           


           

          7、DAO iBATIS實現

          com.wysm.netstar.persistence.sqlmapdao.BaseSqlMapDao.java
          package com.wysm.netstar.persistence.sqlmapdao;
          import com.ibatis.dao.client.DaoManager;
          import com.ibatis.dao.client.template.SqlMapDaoTemplate;
          public class BaseSqlMapDao extends SqlMapDaoTemplate {
            protected static final int PAGE_SIZE = 4;
            public BaseSqlMapDao(DaoManager daoManager) {
              super(daoManager);
            }
          }
           


          com.wysm.netstar.persistence.sqlmapdao.SequenceSqlMapDao.java
          package com.wysm.netstar.persistence.sqlmapdao;
          import com.ibatis.dao.client.DaoManager;
          import com.wysm.netstar.persistence.iface.SequenceDao;
          public class SequenceSqlMapDao extends BaseSqlMapDao implements SequenceDao {
            public SequenceSqlMapDao(DaoManager daoManager) {
              super(daoManager);
            }
            public Integer getSequenceUserId(){
                return (Integer)queryForObject("getSequenceUserId",new Object());
            }
          }
           
           


          com.wysm.netstar.persistence.sqlmapdao.UserSqlMapDao.java
          package com.wysm.netstar.persistence.sqlmapdao;
          import com.ibatis.dao.client.DaoManager;
          import com.wysm.netstar.domain.User;
          import com.wysm.netstar.persistence.iface.UserDao;
          import java.util.List;
          import org.apache.log4j.Logger;
          public class UserSqlMapDao extends BaseSqlMapDao implements UserDao {
              static Logger logger=Logger.getLogger(UserSqlMapDao.class);
            public UserSqlMapDao(DaoManager daoManager) {
              super(daoManager);
              logger.debug("In UserSqlMapDao daoManager null="+(daoManager==null));
            }
            public List getUser(String userAlias){
                return queryForList("getUserByUserAlias",userAlias);
            }
            public List getUser(String userAlias,String password){
                User user=new User(userAlias,password);
                return queryForList("getUserByUserAliasAndPassword",user);
            }
            public void insertUser(User user){
                update("insertUser", user);
            }
            public void updateUser(User user){
                update("updateUser", user);
            }
            public List getUserByEmail(String email){
                return queryForList("getUserByEmail",email);
            }
            public boolean existUserId(Integer userid){
                Integer cnt=(Integer)this.queryForObject("existUserId",userid);
                return  cnt.intValue()>0;
            }
          }
           
           


          com.wysm.netstar.persistence.sqlmapdao.UserInfoSqlMapDao.java
          package com.wysm.netstar.persistence.sqlmapdao;
          import com.ibatis.dao.client.DaoManager;
          import com.wysm.netstar.persistence.iface.UserInfoDao;
          import com.wysm.netstar.domain.UserInfo;
          public class UserInfoSqlMapDao extends BaseSqlMapDao implements UserInfoDao {
            public UserInfoSqlMapDao(DaoManager daoManager) {
              super(daoManager);
            }
            public UserInfo getUserInfo(Integer userId){
                return (UserInfo)queryForObject("getUserInfoByUserId",userId);
            }
            public void insertUserInfo(UserInfo userInfo){
                update("insertUserInfo", userInfo);
            }
            public void updateUserInfo(UserInfo userInfo){
                update("insertUserInfo", userInfo);
            }
          }
           


           

          8、Facade接口定義

          com.wysm.netstar.persistence.sqlmapdao.UserInfoSqlMapDao.java
          package com.wysm.netstar.service;
          import com.wysm.netstar.domain.User;
          public interface UserService {
              public void addNewUser(User user);//增加新用戶
              public boolean existUserAlias(String userAlias);//檢查用戶別名是否已經存在
              public User existUser(String userAlias,String password);//用戶密碼驗證
              public boolean existEmail(String email);//檢查EMAIL是否已經存在
              public boolean existUserId(Integer userId);//用戶流水號驗證
          }

           


           

          9、FACADE實現

          com.wysm.netstar.service.ibatis.UserServiceImpl.java
          package com.wysm.netstar.service.ibatis;
          import java.util.*;
          import org.apache.log4j.*;
          import com.ibatis.dao.client.*;
          import com.wysm.netstar.domain.*;
          import com.wysm.netstar.persistence.iface.*;
          import com.wysm.netstar.service.*;
          public class UserServiceImpl implements UserService {
              private UserDao userDao;
              private SequenceDao sequenceDao;
              private UserInfoDao userInfoDao;
              private DaoManager daoMgr;
              static Logger logger=Logger.getLogger(UserServiceImpl.class);
              public UserServiceImpl() {
          //        daoMgr = DaoConfig.getDaoManager();
          //        this.userDao=(UserDao)daoMgr.getDao(UserDao.class);
              }
              private void initDaos(){
                  if (userDao==null){
                      this.userDao=(UserDao)daoMgr.getDao(UserDao.class);
                      this.sequenceDao=(SequenceDao)daoMgr.getDao(SequenceDao.class);
                      this.userInfoDao=(UserInfoDao)daoMgr.getDao(UserInfoDao.class);
                  }
              }
              public void addNewUser(User user){
                  Integer id=sequenceDao.getSequenceUserId();
                  user.setUserId(id);
                  UserInfo userInfo=new UserInfo();
                  userInfo.setUserId(id);
                  userInfo.setLastLogDate(null);
                  userInfo.setLogTimes(new Integer(0));
                  userInfo.setRegDate(new Date());
                  try{
                      daoMgr.startTransaction();
                      userDao.insertUser(user);
                      userInfoDao.insertUserInfo(userInfo);
                      daoMgr.commitTransaction();
                  }catch(Exception ex){
                      ex.printStackTrace();
                  }finally{
                      daoMgr.endTransaction();
                  }
              }
              public boolean existUserAlias(String userAlias){
                  List users=userDao.getUser(userAlias);
                  if (users!=null&&users.size()>0)
                      return true;
                  return false;
              }
              public User existUser(String userAlias,String password){
                  List users=userDao.getUser(userAlias,password);
                  if (users!=null&&users.size()>0)
                      return (User)users.get(0);
                  return null;
              }
              public boolean existEmail(String email){
                  List users=userDao.getUserByEmail(email);
                  if (users!=null&&users.size()>0)
                      return true;
                  return false;
              }
              public void setDaoMgr(DaoManager daoMgr) {
                  this.daoMgr = daoMgr;
              }

              public void setSequenceDao(SequenceDao sequenceDao) {
                  this.sequenceDao = sequenceDao;
              }
              public void setUserDao(UserDao userDao) {
                  this.userDao = userDao;
              }
              public void setUserInfoDao(UserInfoDao userInfoDao) {
                  this.userInfoDao = userInfoDao;
              }
              public boolean existUserId(Integer userId){
                  if (userId.intValue()==0)
                      return false;
                  return userDao.existUserId(userId);
              }
          }

           

          10、iBATIS DAO支持定義

          com.wysm.netstar.persistence/dao.xml
          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE daoConfig
              PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
              "http://ibatis.apache.org/dtd/dao-2.dtd">

          <daoConfig>

            <context>

              <transactionManager type="SQLMAP">
                <property name="SqlMapConfigResource"
                  value="com/wysm/netstar/persistence/sqlmapdao/sql/sql-map-config.xml"/>
              </transactionManager>

              <dao interface="com.wysm.netstar.persistence.iface.UserDao"
                implementation="com.wysm.netstar.persistence.sqlmapdao.UserSqlMapDao"/>

              <dao interface="com.wysm.netstar.persistence.iface.SequenceDao"
                implementation="com.wysm.netstar.persistence.sqlmapdao.SequenceSqlMapDao"/>

              <dao interface="com.wysm.netstar.persistence.iface.UserInfoDao"
                implementation="com.wysm.netstar.persistence.sqlmapdao.UserInfoSqlMapDao"/>

            </context>

          </daoConfig>
           
          com.wysm.netstar.persistence.DaoConfig.java
          package com.wysm.netstar.persistence;
          import com.ibatis.common.resources.Resources;
          import com.ibatis.dao.client.DaoManager;
          import com.ibatis.dao.client.DaoManagerBuilder;
          import java.io.Reader;
          import java.util.Properties;
          import org.apache.log4j.Logger;
          public class DaoConfig {
            private static final String resource = "com/wysm/netstar/persistence/dao.xml";
            private static final DaoManager daoManager;
            static Logger logger=Logger.getLogger(DaoConfig.class);
            static {
              try {
                daoManager = newDaoManager(null);
              } catch (Exception e) {
                throw new RuntimeException("Description.  Cause: " + e, e);
              }
            }
            public static DaoManager getDaoManager() {
              return daoManager;
            }
            public static DaoManager newDaoManager(Properties props) {
              try {
                Reader reader = Resources.getResourceAsReader(resource);
                return DaoManagerBuilder.buildDaoManager(reader, props);
              } catch (Exception e) {
                throw new RuntimeException("Could not initialize DaoConfig.  Cause: " + e, e);
              }
            }
          }
           

           

          11、Spring Bean定義文件

          applicationContext.xml這個文件應該放在WEB包的 WEB-INF/下
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

          <beans>
          <bean id="daoManager" class="com.wysm.netstar.persistence.DaoConfig" factory-method = "getDaoManager"/>

               <bean id="sequenceDao" class="com.wysm.netstar.persistence.iface.SequenceDao" factory-bean = "daoManager" factory-method="getDao">
                  <constructor-arg>
                      <value>com.wysm.netstar.persistence.iface.SequenceDao</value>
                  </constructor-arg>
          </bean>

              <bean id="userDao" class="com.wysm.netstar.persistence.iface.UserDao" factory-bean = "daoManager" factory-method="getDao">
                  <constructor-arg>
                      <value>com.wysm.netstar.persistence.iface.UserDao</value>
                  </constructor-arg>
              </bean>

              <bean id="userInfoDao" class="com.wysm.netstar.persistence.iface.UserInfoDao" factory-bean = "daoManager" factory-method="getDao">
                  <constructor-arg>
                      <value>com.wysm.netstar.persistence.iface.UserInfoDao</value>
                  </constructor-arg>
              </bean>

             <bean name="userService" class="com.wysm.netstar.service.ibatis.UserServiceImpl" singleton="false">
                  <property name="daoMgr">
                      <ref bean="daoManager"/>
                  </property>
                  <property name="sequenceDao">
                      <ref bean="sequenceDao"/>
                  </property>
                  <property name="userDao">
                      <ref bean="userDao"/>
                  </property>
                  <property name="userInfoDao">
                      <ref bean="userInfoDao"/>
                  </property>
              </bean>

              <bean name="userService" class="com.wysm.netstar.service.ibatis.UserServiceImpl" singleton="false">
                  <property name="daoMgr">
                      <ref bean="daoManager"/>
                  </property>
                  <property name="sequenceDao">
                      <ref bean="sequenceDao"/>
                  </property>
                  <property name="userDao">
                      <ref bean="userDao"/>
                  </property>
                  <property name="useInfoDao">
                      <ref bean="useInfoDao"/>
                  </property>
              </bean>

          </beans>
           
           

           

          12、在JAVA環境下測試以上內容

          com.wysm.netstar.test.SpringTestCase.java
          package com.wysm.netstar.test;
          import junit.framework.TestCase;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.support.FileSystemXmlApplicationContext;
          import com.wysm.netstar.actions.CatalogAction;
          import com.wysm.netstar.service.UserService;
          import com.wysm.netstar.domain.Catalog;
          import java.util.List;
          public class SpringTestCase extends TestCase {
              private UserService userService;
              private Catalog catalog;
              protected void setUp() throws Exception {
                  super.setUp();
                  ApplicationContext ctx=new FileSystemXmlApplicationContext( "D:/JBProject/NetStarv0.1/netstar/WEB-INF/applicationContext.xml");
                  userService =(UserService)ctx.getBean("UserService");
              }
              protected void tearDown() throws Exception {
                  super.tearDown();
              }
              public void testSave(){
                  //自己寫測試代碼
              }
          }
           

           

          posted on 2006-02-25 16:02 都市淘沙者 閱讀(558) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 炎陵县| 全州县| 双江| 宜川县| 乐山市| 通辽市| 乌恰县| 宁城县| 富宁县| 瑞安市| 昭觉县| 青浦区| 湖口县| 红安县| 墨竹工卡县| 屏山县| 亚东县| 乌鲁木齐县| 延寿县| 繁昌县| 印江| 马尔康县| 高要市| 阜宁县| 鄂伦春自治旗| 嵊泗县| 镶黄旗| 马公市| 河池市| 扎兰屯市| 象州县| 广德县| 射洪县| 沈阳市| 永福县| 习水县| 金塔县| 松阳县| 驻马店市| 察雅县| 延津县|