SSM框架项目开发过程整理
来源:互联网 发布:苹果远程连接软件 编辑:程序博客网 时间:2024/05/21 10:30
SSM框架项目开发过程整理
本项目构建自慕课网《Java高并发秒杀API》课程系列
http://www.imooc.com/course/programdetail/pid/59
开发轨迹
- 业务分析
- DAO层实现
- 接口设计 + SQL编写
- 使用Junit测试功能
- Service层实现
- Web层实现
- 高并发优化
业务分析
不多讲,针对业务需求做功能分割分层,抽象出实体和业务逻辑设计数据库
DAO层实现
涉及包:
- dao
- Data Access Object 数据访问对象
- 将非对象数据以对象的形式操纵
- entity
- 数据库表映射的实体
流程:
- 使用配置文件整合Spring和MyBatis
- 设计和建立数据库及表,根据ORM规则创建Entity类
- 根据业务逻辑(CRUD)创建DAO接口
- 根据DAO接口创建对应的mapper.xml,手动书写SQL语句
- 注意:多参数传递要使用@Param注解
- 创建Junit4测试用例,并整合Spring
- 测试MyBatis的DAO层自动实现的功能
优点:
- 与其他层实现分离(DAO层拼接等逻辑在Service层实现)
- DAO层工作演变成:接口设计 + SQL编写
- 代码与SQL分离,方便Review
Service层实现
涉及包:
- service
- 具体业务实现接口定义
- service.impl
- 实现service接口的实现类
- dto
- Data Transfer Object 数据传输对象
- 用于在不同层直接的数据传输(如Service层与Web层)
- 隔离不同层,降低层间耦合
- exception
- 自定义的业务exception
- enums
- 数据字典,存放业务相关的常量数据
流程:
- 设计Service接口,dto数据传输对象,自定义Exception和enum
- 设计Service接口实现类
- 配置Spring service层的xml配置及注解
- 创建Junit4测试用例并进行测试
Web层实现
前端交互设计:
- 根据需求设计前端交互流程
- 人员
- 产品
- 解读用户需求,设计满足用户需求的文档
- 前端
- 负责页面展示
- 后端
- 负责存储展示
- 产品
Restful接口:
- 一种优雅的URI表述方式
- 资源的状态和状态转移
- 示例
GET /seckill/list
- OK
POST /seckill/execute/{seckillId}
- WRONG
POST /seckill/{seckillId}/execution
- OK(使用名词执行,POST表动作)
GET /seckill/delete/{id}
- WRONG
DELETE /seckill/{id}/delete
- OK
- Restful规范
- GET
- 查询操作
- POST
- 添加或修改操作
- 非幂等
- PUT
- 修改操作
- 幂等,可以使用相同参数重复执行,并能获得相同结果的函数,不用担心重复执行会对系统造成改变
- 对同一URL的多个请求应该返回同样的结果
- DELETE
- 删除操作
- GET
- URL设计
/模块/资源/{标示}/集合1/...
- 例子
/user/{uid}/friends
- 好友列表
/user/{uid}/followers
- 关注者列表
- 秒杀API的URL设计
GET /seckill/list
秒杀列表GET /seckill/{id}/detail
详情页GET /seckill/time/now
系统时间POST /seckill/{id}/exposer
暴露秒杀POST /seckill/{id}/{md5}/execution
执行秒杀
SpringMVC基础:
- 围绕Handler开发
- URL映射 注解@RequestMapping
* 支持标准URL
* Ant风格URL(?匹配一个字符,匹配任意字符,*匹配任意路径)
* 带{xxx}占位符的URL - 请求参数绑定
- @PathVariable(“xxx”)
- 对应URL中的占位符{xxx}
- @RequestParam(“xxx”)
- 对应的请求参数
- @PathVariable(“xxx”)
- 请求方法限制
- @RequestMapping(method=RequestMethod.xxx)
- GET,POST,PUT,DELETE
- @RequestMapping(method=RequestMethod.xxx)
- 请求转发和重定向
- 转发
- return “redirect:/url”;
- 重定向
- return “forward:/seckill/list”;
- 转发
- 数据模型赋值
- ModelAndView或Model
- 调用addAttribute方法
- ModelAndView或Model
- 返回json数据
- @RequestMapping(produces=”application/json;charset=UTF-8”)
- @ResponseBody
- 直接返回POJO就能转换成json
- cookie访问
- 参数注解 @CookieValue(value=”xxx”,require=”false”)
涉及包:
- dto
- 封装泛型JSON result
- web
- 实现Controller
流程:
- 创建Controller及各接口映射的方法
- 使用注解描述各接口的映射,限制及参数获取
- 调用Service(由SpringDI注入)完成业务逻辑,封装到Model中返回给相应视图
- 完成视图设计
- 部署到服务器上调试
阅读全文
0 0
- SSM框架项目开发过程整理
- 某教育平台项目开发之--使用SSM框架开发过程遇到的问题总结
- 微信投票项目开发--ssm框架
- SSM框架配置文件整理
- Maven构建SSM框架JavaWeb项目pom.xml文件整理
- SSM框架 SSM项目源码 SSM源码
- SSM框架 SSM项目源码 SSM源码
- SSM框架 SSM项目源码 SSM源码
- SSM框架 SSM项目源码 SSM源码
- SSM框架整合配置文件整理
- SSM框架重构达内NETCTOSS项目——(1)开发准备
- SSM框架的搭建及项目开发的步骤
- ssm框架实例开发
- ssm框架整合开发
- SSM框架练习项目--汇通
- Maven项目整合SSM框架
- muiH5前端框架和ssm后端框架开发移动混合app——过程
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目以及SSM框架下载
- python
- Codeforces 849 C. From Y to Y 结论题
- 集合各实现类的底层实现原理
- UVA 1593
- 92. Reverse Linked List II(链表)
- SSM框架项目开发过程整理
- List集合
- 交叉编译环境以及ARM开发板上-/bin/sh: ./hello: not found
- 《Deep Work -- 深度工作》
- CodeForces 281 A.Word Capitalization(水~)
- maven 学习
- 常用Java静态代码分析工具的分析与比较
- 条件操作后续
- listView展示取出的网络数据