# ssmcodegen **Repository Path**: adamweixuan/ssmcodegen ## Basic Information - **Project Name**: ssmcodegen - **Description**: ssm(spring,springMVC,Mybatis)代码生成器,直接生成完整的工程骨架 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2016-07-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #ssmcodegen ssm代码生成器的目标是生成Spring、SpringMVC、Mybatis作为基础的javaWeb项目骨架。他致力于提供规范、快速、高效、稳定、可扩展的初始化代码。 本工具将会改造mybatis code generator,包括其内部数据结构,生命周期,格式化机制,以及取消实际情况用处不太大的扩展点。 同时本工具希望提供一种更加完善的merge机制,支持更加友好的增量开发支持。 在配置方面,简单>扩展,我们希望一个简单的properties文件或者命令行即可启动功能,而不是类似于mybatis code generator那样需要复杂的xml文件。 ssmcodegen立足的前提是满足当前主流的开发规律,我们默认认为代码风格应该是怎么样,所以不会为了考虑工具的完备性而在不符合大众习惯的地方提供太多扩展点 ##项目技术选型 SSM maven logback+sl4j mysql tomcat7 ##工具类 common-lang3 guava common-io ##可选依赖 orika lombok #实现原理 *连接数据库,获取数据库元数据信息,构建数据结构模型* *根据数据结构模型构建java model模型,并生成基本的getter&setter方法* *根据主键信息和字段信息生成mybatis配置文件* *根据全局参数生成全局的配置文件和java文件(全局封装)* *使用eclipse formater格式化代码* *序列化代码到磁盘* #扩展点 可以作为API的形式作为其他也许的工具类。所以希望提供各种扩展点为高级用户实现定制化需求, 拟设置的扩展点包括:插件校验、数据库自省、模型构建、mybatis mapper构建、模型不相关java文件产生、模型不相关xml文件产生、其他文件产生 #支持和不支持 *支持代码格式化,使用eclipse格式化规则,可以导出eclipse格式化规则用来配置生成器格式化规则,注:idea请使用eclipse code formatter插件来实现不同编译器的格式化规则统一* *支持父子工程和单工程结构(父子工程分接口、接口实现、web工程三个子包来实现)* *支持lombok特性(包括construcotr、getter、setter、日志对象植入)* *支持多层数据结构(不同层级逻辑面对不同的数据结构,如VO、Model、Entity),以及指出各层数据结构的转换* *支持简单的日志配置,对于日志,这里只提供默认的,请使用者根据各自公司规范实现* *支持灵活的分页查询和条件过滤* *支持代码增量生成* *不支持gradle作为构建工具* *不支持除mysql之外的其他数据库* *不支持除eclipse之外的其他代码格式化规则* *不支持groovy作为日志描述文件(用户可以自己增加)* *不支持除json外的其他交互借口* #设计原则 *尽可能支持使用最流行的(如弃用strut2、hibernate,jsp)* *尽可能使用最新的API* *尽可能使代码规范(特别是依赖相关,要做到无二义性、无重复类,重复类检查机制,同group下版本统一。日志相关,logback+sl4j统一所有其他日志框架)* *尽可能填掉肯能遇到的坑(默认编码,springMVC各种处理器等)* *代码可读性>代码扩展型>运行效率*