项目演示、需求分析、开发约定、环境搭建
1.1. 项目演示
1.1.1. 演示项目的功能模块
l 通过演示了解客户的需求, 也就是我们要实现的功能
l 思考项目所需要涉及到的技术
1.1.2. 项目中涉及到的技能点
l Spring MyBatis框架在项目中的使用(J2EE技术)
l 在线支付、短信服务(支付接口调用)
l Jquery: Jquery_validate、EasyUI、JSchart各种组件的使用
l SVN、UML、PowerDesigner (建模工具、配置管理工具的使用)
1.2. 需求分析
1.2.1. 查询商品
游客可以免费浏览商城的商品,可以查询最热、最新商品, 并且可以通过搜索功能,查询自己想要的商品
1.2.2. 会员登陆、修改个人资料
会员可以登陆,登陆成功后,可以购物(也可以直接购物,支付的时候在登录),并且可以修改个人信息,电话地址.并且可以查询历史订单、可以按日期范围某月份的购物清单
1.2.3. 购物车
登陆会员可以在线购物,把选中的商品添加到购物车中,然后可以继续添加商品,如果购物完毕,在购物车中显示了已购买商品的名称、数量、价格.会员可以在结算之前动态修改购买的数量
1.2.4. 在线支付(如何调用第三方接口)
与银行进行连接,完成在线支付的功能
1.2.5. 邮件服务、短信服务
支付成功后,会自动给买家发送一封Email告知,订单状态,平时店庆搞活动也可以给会员发邮件, 或者发送一条短信(需要调用运营商接口)
1.2.6. 项目的部署和发布
商城是外网项目, 制作完毕后肯定要申请域名和空间部署发布到互联网中
1.2.7. 后台商城管理设计
实现基于easyui的后台的管理页面设计
1.2.8. 后台不同用户的权限控制
管理员的后台登陆与用户后台登陆功能不同
1.2.9. 销售报表
通过后台按年/月 查询热点商品的销售量.为决策提供依据
1.2.10. 数据验证功能
基于前台的jquery validate 和后台的mvc注解验证
1.3. 开发的一些约定
1.3.1. 软件、框架版本约定
编号 | 工具 | 版本 | 说明 |
1. | MyBatis | 3.1 | 实现持久化操作 |
2. | Spring | 3.2 | 用于分层解藕 |
3. | Junit | 4.0 | 单元测试 |
4. | JQuery | 2.0 (支持IE 10 和以上的版本) | 实现ajax各种特效和插件 |
5. | IBM.Rational | 7.0 | Java面向对象建模工具 |
6. | SVN | 1.6 | 开发版本控制软件 |
1.3.2. 开发环境
操作系统 | Windows XP |
|
开发工具 | MyEclipse 10 |
|
数据库 | mysql-5.5.67-win32 |
|
Web容器 | Tomcat 7.0 / Tomcat 8.0 |
|
JDK | JDK 1.6+ J2EE 6.0 + Tomcat 7.0 (开发环境与部署环境相同) JDK 1.5 + J2EE 5.0 + Tomcat 6.0 (开发环境与部署环境相同) |
1.3.3. 编码、包约定
l 编码约定:工程、页面、数据库编码统一编码为UTF-8
WindowàPreferencesàGeneralàWorkspace里面可以修改工作空间的缺省编码
l 开发、编译、运行和系统配置的JDK要统一
l 包命名规范:公司名称+项目名称+用途命名 具体命名如下
包名 | 说明 |
cn.it.shop.dao | Dao接口 |
cn.it.shop.dao.impl | Dao的实现类 |
cn.it.shop.service | Service接口 |
cn.it.shop.service.impl | Service的实现类 |
cn.it.shop.controller | MVC的controller |
cn.it.shop.util | 存放工具类, |
cn.it.shop.interceptor | 拦截器 |
cn.it.shop.listener | 监听器 |
cn.it.shop.model | 实体类 |
cn.it.shop.filter | 过滤器 |
1.3.4. 页面的相关约定
l JSP、CSS、JS文件独立分开、命名相同 (项目前台页面)
l 在HTML代码中不要嵌入任何的JS CSS代码 (外网:DIV+CSS)
l 前台不要使用MVC标签JSTL(标签必须依赖MVC框架, 此标签还有侵入性)
l 内网项目建议把页面放到Web-INF下
n 内网(放到web-inf下面):所有的请求都需要经过action转发, 不方便但是安全,可以通过拦截(*.action)器判断登录是否成功
n 外网(放到webroot下面):所有的请求可以直接访问jsp-->jsp,方便,但是不安全(可以通过防盗链来解决页面顺序访问问题, 如果登陆才能访问的页面,前段可以通过 过滤器来判断user文件夹即可
l 外网项目建议把页面放到webRoot下, 通过防盗链解决安全性问题
1.3.5. 数据库的相关约定
建立表注意事项说明:
1. 如果MySQL是绿色版,则先设置MySQL的编码,把编码配为UTF8
2. 数据库中建议不要设置自定义约束,和非空约束, 这样可能会给开发和测试带来不便, 而且在真正投入使用时, 数据的非空约束是依靠前台和后台的验证来实现,数据库只负责存储
3. 软件开发中,为了提高表性能,尽量不要设置外键约束, 表关系也更灵活
4. 在编写SQL语句的时候最好写完整语法 (列名,列名)values (值,值) 有利于维护, 否则后期增加字段前面的语句就用不了
5. 操作数据时一般不做”删除” 只做更新操作
1.3.6. 分层相关约定
l 上面调用下面,即Controller调用Service,Service调用Dao
l 层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口。
l 使用实体作为DTO(Data Transfer Object,数据传输对象)
l 要做到任一层换掉后,其他层不受影响