Javashop开发规范V2.2
版本 V1.0 V2.0 V2.1 V2.2 V2.3 V2.4 说明 初稿 定义了包名、异常、事务、和路径的规范 1. 重新整理了命名规范 2. 增加常用命词对照表 1.增加数据库操作的说明 2.增加常用方法介绍 增加关于数据导入导出的说明 增加校验使用说明(5.3章节) 新增邮件机制说明 提交人 王峰 王峰 王峰 王峰 王峰 王峰
1 命名规范
1.1 包命
1. 小写字母
2. 以com.enation.javashop开头 3. 组件以com.enation.compoent开头
1.2 类名
一、
action
以Action结尾,如:UserAction 二、 1.接口:
业务类
以I开头,以Manager结尾,如:IUserManager 2.
实
现
类
以Manager结尾,如:UserManager 三、
组件类
以Component结尾,如:ShopEmailComponent 四、
挂件类
以Widget结尾,如:MemberAddressWidget 五、
插件类
以Plugin结尾,如:SendRegMailPlugin
1.3 变量/属性命名规则
1. 全部小写
2. 可用下划线连接
如:username、 userid
1.4 方法命名 1.4.1 Action类
add edit saveAdd saveEdit delete list 到添加页 到修改页 保存添加 保存修改 删除 列表
1.4.2 业务类
add edit delete list get
添加 修改 删除 列表 读取详细 2 数据库开发规范
2.1 数据操作支持类
一、
业务类数据库调用
1.继承于BaseSupport
2.在spring文件中声明parent为baseSupport
实际使用的是:com.enation.eop.sdk.database.BaseJdbcDaoSupport
此种操作示例:
com.enation.javashop.core.service.impl.BrandManager
注意事项:见【BaseDaoSupport的意义和存在的问题】
二、 直接声明baseDaoSupport操作数据库
在一些挂件类中或某些特殊情况,可以直接需要直接声明baseDaoSupport 此种操作示例:
com.enation.javashop.core.service.impl.batchimport.GoodsSpecImporter
注意事项:见【BaseDaoSupport的意义和存在的问题】
2.2 BaseDaoSupport的意义存在的问题
BaseDaoSupport对JdbcDaoSupport进行包装,通过 baseDBRouter 获取表名, 为什么要通过 baseDBRouter 来获取表名呢?Eop机制是支持SAAS(多租户)模式运行的,在SAAS会为每个用户提供如:es_goods_
为了保证在单机版和SAAS模式中都运行正常,BaseDaoSupport将过滤sql中的相应表名。 但目前还只能支持简单的单表select、insert、update,对于多表的联合查询或更新不能支持。
在这种情况下,就需要通过
daoSupport(com.enation.framework.database.impl.JdbcDaoSupport)来操作,daoSupport不对sql进行任何更改,这时为了保证兼容saas模式兼容性,就要使用BaseSupport.getTableName(String tablename)方法
或baseDBRouter.getTableName(String tablename);来保证表名的正确。
(够混乱?真心希望出现一位大侠拯救这个状况,使basedaosupport可以处理所有情况的sql)
2.3 实体Bean和数据库表对照
Javahop数据库操作支持,将对象直接保存或修改,如:
this.baseDaoSupport.insert(\, brand);
this.baseDaoSupport.update(\, brand, \
+ brand.getBrand_id());
规则为:实体中的属性名和数据库表的字段名相同,如:
对应的数据库字段:
2.4 注解的使用 2.4.1 @NotDbField
在某个实体Bean中,我们可能会有一些属性不对应数据库字段,这时我们需要在相应的 Geter方法中加上@NotDbField注解,以便使数据库机制知道这个字段不转为sql语句,如:
private File file; @NotDbField
public File getFile() { return file; }