后台增删改查搞多了也就没啥意思了,感觉特别没有成就感,心里想着业务时间趁搞个后台的平台,达到什么目的呢?就是开发人员很快开发一个模块,不用再增删改查上浪费时间,该平台该提供什么能力呢?
代码生成器:这个肯定要有的,定义好表结构然后输出结果是controller,service,dao,mybatis配置文件,前台页面JS等
实现方案: 1)构建业务数据元信息;定义一个实体类注解,和类属性的注解,像下面这种,不过这种是写死的,一般都把这种元数据信息放到数据库表里,
/**
* 类注解
* 代码生成器专用
*
*/
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Rule {
/** 是否需要分页, 默认true */
public boolean needPage() default true;
/** 是否需要全选, 默认true */
public boolean needCheckAll() default true;
/** 是否真删除, 默认false */
public boolean realDelete() default false;
/** 是否有高级搜索, 默认true */
public boolean needSearch() default true;
}
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ColumnRule {
public enum FieldType {
/** 普通文本框生成表单元素为<input type='text'> */
TEXT,
/** 单选框 */
RADIO,
/** 下拉列表 */
SELECT,
/** 文本域 */
TEXTAREA,
/** 隐藏域 */
HIDDEN,
/** 复选框 */
CHECKBOX,
/**
* 选择器类型,该参数需要配合SelectorType
* 参数来使用,用于标明生成何种类型的选择器例如:UNIT表示生成公司选择器
*/
SELECTOR,
/**附件类型元素,如果选择此类型表示生成的元素为附件标签*/
FILE,
/**日期类型,生成的FORM元素为日期类插件*/
DATE
};
/** 列类型, 默认TEXT */
public FieldType fieldType() default FieldType.TEXT;
public enum SelectorType {
/**人员选择器*/
USER,
/**公司选择器*/
UNIT,
/**部门选择器*/
DEPT,
/**公司部门复合选择器*/
ORG
};
2)配置构建方案,我们可以Bean上配置这个注解,也可以直接写到表里
@Component
@Entity
@Table(name = "LAS_CASE_RISK_TYPE")
@Rule(defaultOrderField = "createTime", formType = Rule.FormType.MUTI, realDelete = true, needSearch = true, queryFlags = {}, busiName = "CaseRiskType")
public class CaseRiskTypeBean extends CMCCBaseEntityBean {
private static final long serialVersionUID = -8412045411199632816L;
@ColumnRule(canFilter = true, canSearch = true, formOrderNum = 1, subLen = 10, listOrderNum = 1, maxLen = 20, columName = "名称")
private String name;
@ColumnRule(canFilter = true, canSearch = true, formOrderNum = 2, subLen = 10, listOrderNum = 2, maxLen = 20, columName = "编号")
private String code;
@ColumnRule(canFilter = true, canSearch = true, colWidth = 35, fieldType = ColumnRule.FieldType.TEXTAREA, formOrderNum = 3, listOrderNum = 3, inOneRow = true, isRequired = false, maxLen = 1500, subLen = 50, columName = "描述信息")
private String remark;
3)根据方案和数据表信息生成代码,我们可以通过string拼接的方式,拼接成对应的字符写到文件里或者通过freemaker的工具类,把模板维护在数据库里或xml里,这样直接生成代码,当然MybatisGenerator也提供生成代码生成器的能力(仅限于配置文件实体类等信息)
数据字典国际化:提供数据字典包含业务数据国际化的服务,就是业务数据的国际化
前端组件:代码生成器配合前端生成一起必要的组件,比如选择树,弹出框等
反正还没开始做,方案先定好把