日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 概述
  • 驗證DAO層的配置
    • 接口
    • SQL映射文件
    • 單元測試類
      • 基類
      • DAO層單元測試類
  • 驗證Service層的配置
    • 接口以及實現類
    • 單元測試類
  • 驗證Controller層的配置
    • 控制層
    • 啟動服務,瀏覽器訪問
  • 附- 模擬HTTP 請求調測利器Postman
    • Postman概述
    • Postman安裝使用
    • 使用Postman
  • Github地址

概述

整合SSM框架之后,我們分別對持久層、業務層、控制層分別做下單元測試。

Area這個實體類屬性相對較少,我們就選擇使用Area來測試吧。

首先為tb_area表準備2條數據

-- ---------------------------- -- Records of tb_area -- ---------------------------- INSERT INTO `tb_area` VALUES ('1', '北京', '帝都', '0', '2018-05-13 21:00:26', '2018-05-14 21:00:33'); INSERT INTO `tb_area` VALUES ('2', '上海', '魔都', '99', '2018-05-13 21:00:36', '2018-05-14 21:00:41');

驗證DAO層的配置

接口

結合/o2o/src/main/resources/spring/spring-dao.xml中的配置

所以 接口層的類都應該寫在com.artisan.o2o.dao包下

AreaDao.java

package com.artisan.o2o.dao;import java.util.List;import com.artisan.o2o.entity.Area;public interface AreaDao {List<Area> queryArea(); }

SQL映射文件

結合/o2o/src/main/resources/spring/spring-dao.xml中的配置

所以在/o2o/src/main/resources/mapper目錄下 新建映mybatis的SQL映射文件

AreaDao.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.artisan.o2o.dao.AreaDao"><select id="queryArea" resultType="Area">SELECTarea_id,area_name,area_desc,priority,create_time,last_edit_timeFROMtb_areaORDER BYpriority DESC</select> </mapper>

單元測試類

src/test/java目錄下新建com.artisan.o2o包,使用spring-test更加方便的進行單元測試。 我們已經在 pom.xml中添加了spring-test的依賴。

創建 Spring Test 的基類,該類主要用來加載配置文件,設置web環境。所有的測試類,都需要繼承該類初始化spring信息。

基類

放在com.artisan.o2o目錄下,所有的測試類,都需要繼承該類初始化spring信息。

package com.artisan.o2o;import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/*** * * @ClassName: BaseTest* * @Description: 測試類的基類,配置Spring和junit整合,junit啟動時加載springIOC容器* * @author: Mr.Yang* * @date: 2018年5月14日 下午12:58:21*/@RunWith(SpringJUnit4ClassRunner.class) // 告訴junit spring配置文件 @ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring-service.xml" }) public class BaseTest {}

DAO層單元測試類

com.artisan.o2o.dao包下建立DAO層的測試類,繼承BaseTest

package com.artisan.o2o.dao;import static org.junit.Assert.assertEquals;import java.util.List;import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired;import com.artisan.o2o.BaseTest; import com.artisan.o2o.entity.Area;/*** * * @ClassName: AreaDaoTest* * @Description: 集成SSM后對DAO層進行驗證* * @author: Mr.Yang* * @date: 2018年5月14日 下午5:21:49*/ public class AreaDaoTest extends BaseTest {@AutowiredAreaDao areaDao;@Testpublic void testQueryArea() {List<Area> areaList = areaDao.queryArea();// 插入了2條測試數據,期望list中有2條assertEquals(2, areaList.size());// SQL中按照權重排序,上海priority 99 ,期望第一條數據是 上海System.out.println(areaList.get(0));assertEquals("上海", areaList.get(0).getAreaName());} }

單元測試運行正常。

關鍵日志

JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@a1f72f5] will not be managed by Spring ==> Preparing: SELECT area_id, area_name, area_desc, priority, create_time, last_edit_time FROM tb_area ORDER BY priority DESC ==> Parameters: <== Columns: area_id, area_name, area_desc, priority, create_time, last_edit_time <== Row: 2, 上海, 魔都, 99, 2018-05-13 21:00:36.0, 2018-05-14 21:00:41.0 <== Row: 1, 北京, 帝都, 0, 2018-05-13 21:00:26.0, 2018-05-14 21:00:33.0 <== Total: 2 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@61710c6] Area [areaId=2, areaName=上海, areaDesc=魔都, priority=99, createTime=Sun May 13 21:00:36 BOT 2018, lastEditTime=Mon May 14 21:00:41 BOT 2018]

驗證Service層的配置

接口以及實現類

接口

package com.artisan.o2o.service;import java.util.List;import com.artisan.o2o.entity.Area;public interface AreaService {/*** * * @Title: getAreaList* * @Description: 獲取區域列表* * @return* * @return: List<Area>*/List<Area> getAreaList(); }

實現類

package com.artisan.o2o.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.artisan.o2o.dao.AreaDao; import com.artisan.o2o.entity.Area; import com.artisan.o2o.service.AreaService;/*** * * @ClassName: AreaServiceImpl* * @Description: @Service標注的服務層* * @author: Mr.Yang* * @date: 2018年5月14日 下午9:06:45*/ @Service public class AreaServiceImpl implements AreaService {@AutowiredAreaDao areaDao;@Overridepublic List<Area> getAreaList() {return areaDao.queryArea();}}

單元測試類

package com.artisan.o2o.service;import java.util.List;import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired;import com.artisan.o2o.BaseTest; import com.artisan.o2o.entity.Area;public class AreaServiceTest extends BaseTest {@AutowiredAreaService areaService;@Testpublic void testGetAreaList() {List<Area> areaList = areaService.getAreaList();Assert.assertEquals("上海", areaList.get(0).getAreaName());} }

BaseTest基類中,別忘了加載classpath:spring-service.xml 配置文件,否則報錯。 第一步已經加好了,這里就不重復了。

單元測試運行正常。

關鍵日志

JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@a1f72f5] will not be managed by Spring ==> Preparing: SELECT area_id, area_name, area_desc, priority, create_time, last_edit_time FROM tb_area ORDER BY priority DESC ==> Parameters: <== Columns: area_id, area_name, area_desc, priority, create_time, last_edit_time <== Row: 2, 上海, 魔都, 99, 2018-05-13 21:00:36.0, 2018-05-14 21:00:41.0 <== Row: 1, 北京, 帝都, 0, 2018-05-13 21:00:26.0, 2018-05-14 21:00:33.0 <== Total: 2 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@61710c6] Area [areaId=2, areaName=上海, areaDesc=魔都, priority=99, createTime=Sun May 13 21:00:36 BOT 2018, lastEditTime=Mon May 14 21:00:41 BOT 2018]

驗證Controller層的配置

控制層

package com.artisan.o2o.web;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import com.artisan.o2o.entity.Area; import com.artisan.o2o.service.AreaService;@Controller @RequestMapping("/superadmin") public class AreaController {@AutowiredAreaService areaService;@RequestMapping(value = "/listArea", method = RequestMethod.GET)@ResponseBodypublic Map<String, Object> getAreas() {Map<String, Object> map = new HashMap<String, Object>();List<Area> areaList = new ArrayList<Area>();try {areaList = areaService.getAreaList();map.put("total", areaList.size());map.put("rows", areaList);for (Area area : areaList) {System.out.println("區域:" + area);}} catch (Exception e) {e.printStackTrace();map.put("success", false);map.put("errMsg", e.getMessage().toString());}return map;}}

啟動服務,瀏覽器訪問

訪問如下地址:
http://localhost:8080/o2o/superadmin/listArea

為了美化JSON,在瀏覽器中,更直觀的查看JSON,在Chrome中安裝了json-handle插件,展示效果如下:


附- 模擬HTTP 請求調測利器Postman

Postman概述

在開發或者調試網絡程序或者是網頁B/S模式的程序的時候,常常需要跟蹤監視網頁HTTP請求,測試服務器響應是否正確。

Chrome 瀏覽器擴展插件:Postman,可以模擬用戶 HTTP 請求的數據發送到服務器,方便測試服務器接口。

  • (1)Postman 是一個 Chrome 擴展,提供功能強大的 API & HTTP 請求調試。
  • (2)能夠發送任何類型的 HTTP requests(GET, HEAD, POST, PUT…),附帶任何數量的參數,以及自定義Http 頭信息(HTTP Headers)。
  • (3)支持不同的認證機制(basic, digest, OAuth),接收到的響應語法高亮(HTML,JSON 或 XML)。
  • (4)能夠保留了歷史的請求,這樣我們就可以很容易地重新發送請求,有一個“集合”功能,用于存儲所有請求相同的API/域。
  • (5)項目地址:https://www.getpostman.com/

Postman安裝使用

  • 首先進入Postman插件頁面:
    https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop
  • 點擊“添加至CHROME”按鈕,即可自動下載安裝。

使用Postman

瀏覽器中輸入 chrome://apps/ , 找到并打開Postman


Github地址

代碼地址: https://github.com/yangshangwei/o2o

總結

以上是生活随笔為你收集整理的实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。