JShop简介:jshop是一套使用Java语言开发的B2C网店系统,致力于为个人和中小企业提供免费、好用的网店系统。
项目主页:http://git.oschina.net/dinguangx/jshop
在线演示:
- 前台: http://jshop.ofmall.org:81/jshop
- 后台: http://jshop.ofmall.org:81/jshop/manage/user/login (admin/123456)
原jeeshop目录结构:
所有java代码存放于src/main/java中
net.jeeshop.core net.jeeshop.service.common -> 存放PO,类似于hibernate中的实体类,基本是与数据库字段一对一关系 net.jeeshop.service.front -> 前端服务组件 net.jeeshop.service.front.[module] -> 前端服务模块,service接口直接存放在此 net.jeeshop.service.front.[module].bean -> 数据交换类, 类似DTO,继承于PO net.jeeshop.service.front.[module].dao -> dao接口 net.jeeshop.service.front.[module].dao.impl -> dao实现 net.jeeshop.service.front.[module].impl -> service实现 net.jeeshop.service.manage -> 后台服务组件 net.jeeshop.service.manage.[module] -> 后台服务模块,service接口直接存放在此 net.jeeshop.service.manage.[module].bean -> 数据交换类 ,类似于DTO,继承于PO net.jeeshop.service.manage.[module].dao -> dao接口 net.jeeshop.service.manage.[module].dao.impl -> dao实现 net.jeeshop.service.manage.[module].impl -> service实现 net.jeeshop.web.action.front.[module] -> 前端controller net.jeeshop.web.action.manage.[module] -> 后台controller
所有mybatis映射文件存放于src/main/resources中
mapper/base -> 权限相关映射文件 mapper/front -> 前端映射文件 mapper/manage -> 后台映射文件
jeeshop的代码结构组织上,除PO重用之外,将所有前端与后端的bean, dao, service,mapper全部独立开,好处是相互不影响,坏处是代码重用度太低,尤其是mapper,service, dao其实完全是可以重用的。但是使用jeeshop的这套代码结构,相当于需要同时维护两套代码。
jshop代码目录组织:
jshop引入mybatis generator代码生成器,可生成的代码文件包括mapper,client,model;这里的client即dao,使用的是mybatis的接口访问模式,不再对dao提供实现类。
生成的数据操作方法有:insert(), insertSelective(), selectByPrimaryKey(), selectByExample(), updateByPrimaryKey(), deleteByPrimaryKey().
所有生成的代码位于src/main/gen,此目录中的代码完全使用代码生成器生成,不做任何修改。
net.jeeshop.model -> 数据模型类,包括PO和Example net.jeeshop.client -> client接口 mapper -> mybatis映射文件
具体业务代码目录结构src/main/java:
net.jeeshop.biz.[module].service -> service接口及实现类 net.jeeshop.biz.[module].bean -> 数据交换dto类, 可以继承生成的PO net.jeeshop.biz.[module].client -> 扩展生成的client, 取名规范是在原生成的client接口名增加后缀Ext,继承于生成的client, 如ArticleCatalogMapperExt.java net.jeeshop.web.action.front.[module] -> 前端controller net.jeeshop.web.action.manage.[module] -> 后端controller
扩展的mybatis映射文件存放在src/main/resources中:
mapper/ext -> mybatis映射文件扩展,取名规范是在原生成的映射文件名增加后缀Ext, 如ArticleCatalogMapperExt.xml
即:controller目录组织结构不变,service/bean/client不再单独区分前后端