
【实战-SSM In Action】
SSM实战系列教程
小小工匠
show me the code ,change the world
展开
-
实战SSM_O2O商铺_01项目介绍以及准备工作
项目概述模块划分通用模块数据备份模块前端模版搭建前台模块商家模块超级管理员模块技术选型环境参数开发环境搭建Step1 新建Maven Web项目Step2 构建的项目中出现的错误调整项目概述一个商铺项目,本项目1.0阶段运用SSM技术快速迭代出版校园商铺1.0。同时包含MySQL主从同步实现读写分离,利用SUI Mobile快速实现响应式页面,R...原创 2018-05-13 10:46:03 · 19106 阅读 · 2 评论 -
实战SSM_O2O商铺_02数据模型设计及实体类的创建
模块介绍数据模型及对象设计模块介绍主要分为3个大模块前端展示模块店家模块后台管理模块数据模型及对象设计原创 2018-05-14 04:09:26 · 16849 阅读 · 0 评论 -
实战SSM_O2O商铺_03项目结构规划及Maven配置
项目结构规划Maven配置项目结构规划按照功能在 com.artisan.o2o下新建几个package ,如上所示。spring配置文件放在/src/main/resources/springmybatis配置文件放在/src/main/resources/mapper静态资源文件存放在/o2o/src/main/webapp/resources...原创 2018-05-14 23:05:20 · 15862 阅读 · 0 评论 -
实战SSM_O2O商铺_04自下而上逐步整合SSM
概述整合持久层配置jdbc.propertiesMyBatis全局配置文件mybatis-config.xmlspring-dao.xml整合Service层配置spring-service.xml整合控制层(web/controller)配置spring-web.xmlweb.xml中整合spring集成的配置web.xml总结概述在...原创 2018-05-15 04:55:08 · 16231 阅读 · 0 评论 -
实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
概述验证DAO层的配置验证Service层的配置验证Controller层的配置概述整合SSM框架之后,我们分别对持久层、业务层、控制层分别做下单元测试。Area这个实体类属性相对较少,我们就选择使用Area来测试吧。首先准备2条数据-- ------------------------------ Records of tb_area-- ---...原创 2018-05-15 11:08:25 · 17533 阅读 · 10 评论 -
实战SSM_O2O商铺_06logback配置与使用
概述Maven依赖logback加载配置文件规则logback 日志级别概述一般情况下,Logback与slf4J组合使用。logback的官方网站:http://logback.qos.chSLF4J的官方网站:http://www.slf4j.orglogback的三个模块logback-corelogback-classiclogback-...原创 2018-05-17 02:14:18 · 15994 阅读 · 2 评论 -
实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺
概述增加商铺ShopDao接口ShopDao.xml单元测试概述我们在实战SSM_O2O商铺_02数据模型设计及实体类的创建中规划了具体的模块,按照优先级从高到低的顺序,我们应该先开发 店家模块 ,而店家模块就不得不说 商铺 。 商铺是整个系统的基础,所以我们先来开发商铺管理。 增加商铺按照/o2o/src/main/resources/spri...原创 2018-05-18 15:15:05 · 16453 阅读 · 1 评论 -
实战SSM_O2O商铺_08【商铺注册】Thumbnailator图片处理和封装工具类
概述Thumbnailator 简介工具类的封装Step1 添加maven依赖Step2 FileUtil.javaStep3 ImageUtil.java概述既然是o2o, 图片是不可或缺的。存储这些图片,一般的处理方式:放到专门图片服务器或者在主机上单独划分目录去存储这些图片。数据库中的字段仅仅存放图片的地址。 关于图片的存放目录,合理的情况在系统配...原创 2018-05-21 05:28:22 · 16539 阅读 · 13 评论 -
实战SSM_O2O商铺_09【商铺注册】DTO之ShopExecution的实现
DTO概述枚举类DTO类ShopExecutionDTO概述Data Transfer Object,数据传送对象 . DTO是一个普通的Java类,它封装了要传送的批量的数据。当客户端需要读取服务器端的数据的时候,服务器端将数据封装在DTO中,这样客户端就可以在一个网络调用中获得它需要的所有数据。Shop实体类包含了Shop的基本属性,但是在前端操作时,我们希望可...原创 2018-05-21 05:52:30 · 15827 阅读 · 0 评论 -
实战SSM_O2O商铺_10【商铺注册】Service层的实现
概述ShopService开发步骤Service层接口类ShopServiceService层接口实现类ShopServiceImplShopOperationException单元测试注意事项概述截至目前,我们已经完成了持久层insertShop的开发,编写了操作图片和路径的工具类,使用ENUM定义了操作店铺使用的常量,定义了操作店铺返回的DTO类Shop...原创 2018-05-22 06:20:08 · 16666 阅读 · 9 评论 -
实战SSM_O2O商铺_11【商铺注册】Controller层的实现
概述结构Maven依赖封装工具类HttPServletRequestUtilController控制层编写Service层的改造单元测试概述实战SSM_O2O商铺_10【商铺注册】Service层的实现 实现之后,接下来编写控制层的代码用到了jackson-databind https://github.com/FasterXML/jackson-dat...原创 2018-05-23 04:14:06 · 16443 阅读 · 5 评论 -
实战SSM_O2O商铺_12【商铺注册】View层之前台页面
概述在开发完DAO层、Service层、Controller层之后,我们来实现下View层的部分前端框架选择我们这里选择阿里的SUI Mobile 具体的介绍,这里我们就不多说了,直接访问官网即可(尴尬,SUI Mobile貌似不维护了。。。)页面目录结构搭建商铺注册页面我们选择使用http://m.sui.taobao.org/demos/fo...原创 2018-05-29 06:25:03 · 16708 阅读 · 2 评论 -
实战SSM_O2O商铺_13【商铺注册】View层之初始化页面数据
概述概述页面画完之后,我们的下拉框 <!-- 商铺分类 下拉列表 --> <li> &原创 2018-05-29 12:56:03 · 15918 阅读 · 8 评论 -
实战SSM_O2O商铺_14【商铺注册】View层之验证码kaptcha组件
Kaptcha概述maven依赖web.xml配置Kaptcha对应的servlet,设置属性页面shopoperation.html中定义组件common.jsshopoperation.js使用spring-web.xml配置multipartResolver控制层封装校验验证码的工具类控制层获取验证码做校验Kaptcha概述GitHub: ...原创 2018-05-30 05:16:56 · 15701 阅读 · 7 评论 -
实战SSM_O2O商铺_15【商铺注册】View层+Controller层之图片上传
概述Maven依赖文件上传解析器bean的配置页面shopoperation.html增加上传组件shopoperation.jsController层概述关于结合Spring + Spring MVC 实现文件上传下载,之前总结了几篇Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)Spring ...原创 2018-05-30 06:00:41 · 15887 阅读 · 6 评论 -
实战SSM_O2O商铺_16【商铺注册】前后端联调验证整体模块功能
概述加入断点,开启DEBUG模式查看结果概述我们已经开发完了商铺注册功能,也做了单元测试,那么开启服务,做一次调测吧加入断点,开启DEBUG模式我们在注册商铺的入口Controller层 ShopController#registerShop 加上断点,然后以debug的模式启动tomcat,访问http://localhost:8080/o...原创 2018-05-30 13:08:44 · 16145 阅读 · 9 评论 -
实战SSM_O2O商铺_17【商铺编辑】Dao层开发
概述ShopDao接口ShopDao映射文件单元测试概述ShopDao接口com.artisan.o2o.dao.ShopDao.java 新增查询接口/** * * * @Title: selectShopById * * @Description: 根据shopId查询shop * ...原创 2018-06-03 05:36:20 · 15983 阅读 · 2 评论 -
实战SSM_O2O商铺_18【商铺编辑】Service层开发
概述结构Service层接口及其实现类单元测试概述既然是商铺编辑,肯定要根据入参shopId获取shop信息,然后用户在客户端修改店铺信息后,提交到后台更新商铺信息。所以同样的对于Service层来讲 有2个方法 (DAO层也有对应的两个方法,只不过updateShop我们复用了)Shop getShopById(long shopId);ShopExe...原创 2018-06-03 13:42:40 · 15960 阅读 · 0 评论 -
实战SSM_O2O商铺_19【商铺编辑】Controller层开发
概述ShopControllerShopController#getShopInfoById方法getShopInfoById测试ShopController#modifyShop方法概述按照需求设计,我们希望商铺管理者店铺名称不能修改店铺类别不能修改其余信息可编辑修改分为两步,第一步前端传入shopId到后台获取商铺信息,前端展示第二...原创 2018-06-04 13:27:08 · 16051 阅读 · 0 评论 -
实战SSM_O2O商铺_20【商铺编辑】View层开发
概述步骤前后端调测概述按照设计,有如下几个点修改商铺和注册商铺肯定是一个页面,这个毋庸置疑商铺名称不能修改,店铺类别不能修改,其余信息可编辑修改修改商铺的时候,图片上传不是必须的需要动态的根据URL来判断是注册还是修改店铺步骤首先新增两个url/o2o/src/main/webapp/resources/js/shop/shopoperatio...原创 2018-06-05 16:48:44 · 16246 阅读 · 0 评论 -
实战SSM_O2O商铺_21【商铺列表】Dao层开发
概述ShopDao接口ShopDao.xml配置SQLDAO层单元测试概述商铺注册和商铺编辑开发完成之后,我们来做一下商铺列表页面。列表页面需要支持分页 (MySql数据库,我们使用limit关键字)ShopDao接口com.artisan.o2o.dao.ShopDao 新增两个接口方法selectShopCountselectShopL...原创 2018-06-07 10:53:40 · 16008 阅读 · 2 评论 -
实战SSM_O2O商铺_22【商铺列表】Service层开发
概述ShopService接口新增接口方法ShopServie接口实现类重写该接口方法分页工具类单元测试Github地址概述 ShopService接口中仅需要定义一个接口方法,在该接口方法的实现类中调用DAO层的两个方法 selectShopList 和 selectShopCount ,并将数据封装到ShopExecution中,以便控制层获取数据,在View...原创 2018-06-08 03:32:15 · 15589 阅读 · 0 评论 -
实战SSM_O2O商铺_23【商铺列表】Controller层开发
#Github地址代码地址: https://github.com/yangshangwei/o2o原创 2018-06-08 15:14:44 · 15981 阅读 · 0 评论 -
实战SSM_O2O商铺_24【商铺列表】View层开发
概述商铺列表View层的开发shoplist.htmlshoplist.jsshoplist.css通过商铺列表页面点击进入商铺的管理页面的开发shopmanagement.htmlshopmanagement.jsshopmanagement.css单元测试Github地址概述大致效果如下功能点用户如果直接进入商铺管理页面,如果没...原创 2018-06-09 10:42:16 · 16963 阅读 · 4 评论 -
实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发
概述Dao层ProductCategoryDao接口ProductCategoryDao Mapper配置文件单元测试Service层ProductCategoryService 接口ProductCategoryServiceImpl接口实现类单元测试Controller层泛型类 Result状态信息ProductCategoryStateEnum控制类Pro...原创 2018-06-16 15:50:16 · 17456 阅读 · 0 评论 -
实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
概述Dao层ProductCategoryDao接口ProductCategoryDao SQL映射文件单元测试Service层ProductCategoryExecution DTO类的开发ProductCategoryStateEnum 增加几个标识封装特定异常类ProductCategoryService接口ProductCategoryServiceImpl实现...原创 2018-06-21 18:22:21 · 16191 阅读 · 0 评论 -
实战SSM_O2O商铺_27【商品类别】删除商品类别从Dao到View层的开发
概述Dao层ProductCategoryDao接口增加接口方法ProductCategoryDao SQL映射文件闭环的单元测试Servie层接口接口实现单元测试Controller层路由方法单元测试View层productcategorymanage.js联调Github地址概述上篇博客 实战SSM_O2O商铺_26【商品类别】...原创 2018-06-22 13:53:17 · 15955 阅读 · 0 评论 -
实战SSM_O2O商铺_28【商品】商品添加之Dao层的实现
概述重温实体类ProuctProductImgProductDao接口Mapper配置文件ProductImgDao接口Mapper配置文件单元测试ProductDaoTestProductImgDaoTestGithub地址概述完成了商品类别的功能后,实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发实战S...原创 2018-06-25 06:52:55 · 15799 阅读 · 0 评论 -
实战SSM_O2O商铺_29【商品】商品添加之Service层的实现及重构
DTO类自定义异常ProductService接口重构重构后的接口方法接口实现类ProductServiceImpl单元测试Github地址DTO类我们知道,我们在操作Product的时候,需要给前端返回状态信息等,单纯的domain类无法满足,这里我们使用DTO包装一下,就如同前面操作Shop和ProductCategory一样。package ...原创 2018-06-26 06:12:43 · 16017 阅读 · 2 评论 -
实战SSM_O2O商铺_30【商品】商品添加之Controller层的实现
概述ProductController单元测试Github地址概述商品添加Controller层的逻辑如下: 1. 获取前端传递过来的Product对象,通过FastJson提供的api将其转换为Product对象 2. 获取前端传递过来的商品缩略图以及商品详情图片,通过CommonsMultipartResolver来处理 3. 调用Service层...原创 2018-06-27 04:26:45 · 16042 阅读 · 7 评论 -
实战SSM_O2O商铺_31【商品】商品添加之View层的实现
概述productoperation.htmlproductoperation.js联调检查结果库表数据:磁盘上的图片Github地址概述在完成了 实战SSM_O2O商铺_30【商品】商品添加之Controller层的实现之后,我们继续来实现View层的代码部分。商品添加和商品编辑使用的是同一个页面,所以需要根据请求的url来判断是编辑还是新增。 按...原创 2018-06-30 00:13:53 · 15924 阅读 · 5 评论 -
实战SSM_O2O商铺_32【商品】商品编辑之Dao层的实现
概述概述完成了商品的添加Dao层到View层功能之后,实战SSM_O2O商铺_28【商品】商品添加之Dao层的实现实战SSM_O2O商铺_29【商品】商品添加之Service层的实现及重构实战SSM_O2O商铺_30【商品】商品添加之Controller层的实现实战SSM_O2O商铺_31【商品】商品添加之View层的实现我们先来看下商品的编辑,最后做商品列...原创 2018-07-01 04:13:27 · 15639 阅读 · 0 评论 -
实战SSM_O2O商铺_33【商品】商品编辑之Service层的实现
概述Service接口Service接口实现类单元测试概述在完成了 Dao层的部分之后,顺其自然的我们来到了Service层,需要调用Dao层提供的操作数据库的方法。 主要步骤如下: 1. 如用户上传了缩略图,则将原有的缩略图删除(磁盘上删除),并更新tb_product表的img_addr字段,否则不做任何处理。 2. 如果用户上传了新的商品详情图片,则...原创 2018-07-01 12:55:33 · 15745 阅读 · 2 评论 -
实战SSM_O2O商铺_34【商品】商品编辑之Controller层的实现
概述ProductController单元测试Github地址概述在完成了 实战SSM_O2O商铺_33【商品】商品编辑之Service层的实现之后,我们继续来实现Controller层的代码部分。主要逻辑:根据前端url中productId ,调用service层的接口获取product信息,以便前端能在商品编辑页面展示对应的数据修改商品P...原创 2018-07-02 05:55:37 · 15745 阅读 · 0 评论 -
实战SSM_O2O商铺_35【商品】商品编辑之View层的实现
概述productoperation.js验证Github地址概述接下来,我们来实现下 View层部分的操作。productoperation.js/** * 因为商品的添加和编辑复用同一个页面,所以需要根据url中的商品Id来判断 */$(function(){ //通过url是否含有productId来判断是添加商品还是编辑 v...原创 2018-07-02 12:03:58 · 16051 阅读 · 3 评论 -
实战SSM_O2O商铺_36【商品】商品列表之Dao+Service+Controller层的实现
概述Dao层ProductDao.javaProductDao.xml单元测试Service层ProductService.javaProductServiceImpl.java单元测试Controller层ProductController.java单元测试Github地址概述接着继续来完成商品列表的功能吧,需要支持分页的功能。 D...原创 2018-07-06 11:45:07 · 15978 阅读 · 0 评论 -
实战SSM_O2O商铺_37【商品】商品列表之View层的实现
概述概述#原创 2018-07-09 12:27:14 · 15714 阅读 · 10 评论 -
实战SSM_O2O商铺_38【商品类别】解除商品与商品类别的关联
概述Dao层ProductDao.javaProductDao.xml单元测试Service层完善ProductCategoryServiceImpl#deleteProductCategory单元测试Github地址概述在 实战SSM_O2O商铺_27【商品类别】删除商品类别从Dao到View层的开发 我们留下了一个TODO,在deleteProdu...原创 2018-07-09 12:44:59 · 15749 阅读 · 0 评论 -
实战SSM_O2O商铺_39【前端展示】首页轮播图和一级商铺Dao+Service+Controller层的实现
概述概述接下来我们来完成前端展示模块部分的功能,极其丑陋的页面原型如下可以分析得出,主页中轮播图需要从后台加载数据,同样的一级类别(即parent_id = null )的商铺信息也需要从后台加载数据...原创 2018-07-25 18:12:19 · 16057 阅读 · 0 评论 -
实战SSM_O2O商铺_40【前端展示】首页轮播图和一级商铺View层的实现
概述index.htmlindex.jsindex.css路由类调测修复问题头条图片展示修复一级类别商铺图片展示修复Github地址概述在完成了后端 实战SSM_O2O商铺_39【前端展示】首页轮播图和一级商铺Dao+Service+Controller层的开发 的开发之后,我们来实现View层的部分index.html<...原创 2018-07-25 22:56:20 · 16891 阅读 · 2 评论