继续更新校园商铺项目,由于店铺注册功能实现逻辑较长,分成两个部分讲述。
前序文章:
1、环境搭建及测试- - -附免费视频教程
2、Logback配置与使用
附上github地址:https://github.com/tyronczt/imooc-o2o
先上效果图:
- 前端页面
- 店铺service测试
- 水印图片
- 店铺新增功能测试
- 店铺修改功能测试
具体代码逻辑视频中讲述很详细,我就不赘述了。此文主要讲述重要知识点,具体的代码实现可查看我的github地址。
一、mybatis配置文件中添加自增主键
mybatis-config.xml文件中
<setting name="useGeneratedKeys" value="true" />
shopDao.xml文件中
useGeneratedKeys="true" keyColumn="shop_id" keyProperty="shopId"
二、dto层开发
dto层用于记录返回结果状态信息,详情可见ShopExecution.java
三、service层之事务控制【重要】
店铺注册的逻辑中分为四步:①新增店铺信息;②返回店铺ID;③存储图片信息;④存储数据库
这是粗略的四个步骤,如果中间出错一步,整个过程将会回滚。注意:Spring事务管理中只对运行期异常(RunTimeException)进行事务回滚。
思考一:代码中将RunTimeException进行封装,业务将更加清晰;
思考二:存储图片时,如未上传图片,应添加默认图片,逻辑更加合理。
四、使用thumbnailator处理图片,并封装工具类及测试
官方案例说明:coobird/thumbnailator
具体代码实现:
- 测试类:ShopServiceTest.java - - -主要方法是:path2MultipartFile;
- 工具类:ImageUtil.java、PathUtil.java
五、使用SUI Mobile编写前端代码
SUI Mobile轻量,小巧且精美,能方便迅速搭建响应式前端页面,如效果图[1]所示。
前端功能逻辑实现中,将会在此系列文章第四篇中讲解。