# topfox **Repository Path**: luchao111/topfox ## Basic Information - **Project Name**: topfox - **Description**: 在 srpingboot2.x.x 和MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2019-07-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1. 目录 - [快速使用](https://gitee.com/topfox/topfox/blob/dev/guide/explain-sample.md) - [常见问题](https://gitee.com/topfox/topfox/blob/dev/guide/explain-question.md) - [TopFox配置参数](https://gitee.com/topfox/topfox/blob/dev/guide/explain-configuration.md) - [上下文对象](https://gitee.com/topfox/topfox/blob/dev/guide/explain-tools.md) - [核心使用](https://gitee.com/topfox/topfox/blob/dev/guide/explain-core.md) - [条件匹配器](https://gitee.com/topfox/topfox/blob/dev/guide/explain-condition.md) - [实体查询构造器](https://gitee.com/topfox/topfox/blob/dev/guide/explain-entityselect.md) - [流水号生成器](https://gitee.com/topfox/topfox/blob/dev/guide/explain-keybuild.md) - [数据校验组件](https://gitee.com/topfox/topfox/blob/dev/guide/explain-checkdata.md) - [更新日志组件](https://gitee.com/topfox/topfox/blob/dev/guide/explain-updatelog.md) - [自动填充组件](https://gitee.com/topfox/topfox/blob/dev/guide/explain-filldata.md) - [Response 返回结果对象](https://gitee.com/topfox/topfox/blob/dev/guide/explain-response.md) ## 1.1. 必备 - 文中涉及的例子源码网址: https://gitee.com/topfox/topfox-sample - TopFox技术交流群 QQ: 874732179 ## 1.2. topfox 介绍 在 srpingboot2.x.x 和MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 编程规范参考《阿里巴巴Java开发手册》 借鉴mybaties plus部分思想 特性: - **无侵入**:只做增强不做改变,引入它不会对现有工程产生影响 - **损耗小**:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 - **集成Redis缓存**: 自带Redis缓存功能, 支持多主键模式, 自定义redis-key. 实现对数据库的所有操作, 自动更新到Redis, 而不需要你自己写任何代码; 当然也可以针对某个表关闭. - **强大的 CRUD 操作**:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 - **支持 Lambda 形式调用**:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 - **支持主键自动生成**:可自由配置,充分利用Redis提高性能, 完美解决主键问题. 支持多主键查询、修改等 - **内置分页实现**:基于 MyBatis 物理分页,开发者无需关心具体操作,写分页等同于普通查询 - **支持devtools/jrebel热部署** - **热加载** 支持在不使用devtools/jrebel的情况下, 热加载 mybatis的mapper文件 - 内置全局、局部拦截插件:提供delete、update 自定义拦截功能 - **拥有预防Sql注入攻击功能** - **无缝支持spring cloud**: 后续提供分布式调用的例子 ## 1.3. topfox 使用 > 推荐上传到自有的maven-nexus服, 然后在业务项目进行以下依赖 ``` com.topfox topfox 1.2.1 pom import ``` # 2. 更新日志 ## 2.1. 版本1.2.1 更新日志 2019-07-18 请参考 << TopFox配置参数 >>中的描述, 增加配置3个参数 : - top.service.update-not-result-error - top.service.select-by-before-update - top.service.redis-log dto增加 addNullfields 方法, 请参考 <<常见问题>> 章节中的 "如何将指定字段的值更新为null" SimpleService.setFillDataHandler 方法作废. 不需要写代码, 会自动注入 填充对象FillDataHandler的实现类. 增加填充组件 FillDataHandler的文档, DataDTO void方法改为返回自身, DataDTO增加setValue方法, 可以对指定的字段赋值 ## 2.2. 版本1.2.0 更新日志 - updateBatch 方法的返回值 由int 改为 List< DTO > - BaseDao 作废删除, 增加 BaseMapper< DTO extends DataDTO > 代替 - AdvancedService< QTO extends DataQTO, DTO extends DataDTO > 改为
AdvancedService< M extends BaseMapper< DTO >, DTO extends DataDTO > - SimpleService 中 方法 setBaseDao 删除. 已经定义 baseMapper , 可访问开发者自定义Dao的方法 ## 2.3. 版本1.1.0 更新日志 ### 2.3.1. 上下文对象 - 在以后的版本中将删除 com.topfox.common.ApplicationContextProvider - 新增加 上下文对象 com.topfox.common.AppContaxt,静态方法如下: ``` getBean(Class clazz) getBean(String name,Class clazz) getRestSessionHandler() getAbstractRestSession() getSysConfig() environment() ``` ### 2.3.2. SimpleService 进行了改造和优化 新增方法 ``` List selectBatch(DataQTO qto) Response> selectPage(EntitySelect entitySelect) Response>> selectPageForMap(EntitySelect entitySelect) List selectBatch(DataQTO qto) Response> listPage(EntitySelect entitySelect) List listObjects(EntitySelect entitySelect) ``` ### 2.3.3. EntitySelect 和DataQTO EntitySelect 和 DataQTO 对 orderBy groupBy having 分页的支持 ### 2.3.4. ResponseCode 增加了多个 异常编码 保证 Topxfox抛出异常 的编码唯一性