# gf-framework **Repository Path**: feifei1994123/gf-framework ## Basic Information - **Project Name**: gf-framework - **Description**: 基于spring-boot,开发服务基础应用包。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-05-30 - **Last Updated**: 2023-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gf-framework 基础组件库 计划由5部分组成 ## 1:demo 基础的使用范例,简单的测试用例等 ## 2:gf-framework-common 最基础的定义,如自定义业务异常,泛型封装、树形结构封装、Restful风格包装类等 ## 3:gf-framework-starter ### gf-framework-starter-dubbo ``` 完成自定义的hash算法。根据方法入参的第一个参数做一致性hash,用于需要上下文保持的应用 ``` ### gf-framework-starter-mongo ``` 1:增加mongodb 事务配置 2:增加lambda操作mongodb功能 使用例子 /demo/basemode/mongodemo ``` ### gf-framework-starter-rabbitmq ``` rabbitmq 配置文件功能增加,可以根据配置文件自动创建交换机、队列、绑定关系 使用例子:demo/basedemo/rabbitmq-demo ``` ### gf-framework-starter-redis ``` 例子:demo/basedemo/rediscache-demo 1:增加CacheExpire注解 (1)结合cacheable,cacheput等使用。可以设置超时时间 2:可以通过配置文件动态配置redis cache的超时时间 配置说明 gf.redis.cache.expire.key1="1000" # 1000毫秒超时 gf.redis.cache.expire.key2="5000-10000" # 随机波动5-10秒超时 配置文件和CacheExpire同时使用时,配置文件优先 3:增加了RedissonLock分布式锁注解,支持SpEL表达式生成key (1)支持等待模式,一直等待获取到lock后执行 (2)支持timeout模式,timeout时间段内没有获取到锁,自动抛异常 4:增加了RepeatRequest注解,支持SpEL表达式 (1)无参模式,自动构建 类名:方法名 的锁 (2)指定value 构建指定的value锁 (3)指定key 构建规则 value:key key支持SpEL表达式 构建锁后,全局只有一个方法可以进入,其他方法进去后,会抛重入异常 (4)指定refusetime 类似短信场景,同一个用户在一定时间发短信后,短期不允许再发。 使用redis setnx + timeout操作 (5)deleteKey = true 在抛异常后,自动进行setnx的键值删除。false的时候不会删 ``` ### gf-framework-starter-web ``` 1:restful接口自动封装了返回值类型包装类 ResultWrapper<> 2:改写了swagger的函数映射逻辑,自动适配ResultWrapper 3:增加了@ExportExcel注解,返回值可填List类型,对数据进行自动的下execl导出封装。 前端额外传参 export=true 如果不传,默认返回ResultWrapper> 4:增加了Controller全局异常捕获 GlobalExceptionHandler (Async,线程池的异常暂时误无法处理,dubbo以及feign异常待测试) 5:统一和前端的交互Time自动转义 日期类型使用 LocalDate yyyy-MM-dd 日期类型 LocalTime HH:mm:ss 时间类型 LocalDateTime "yyyy-MM-dd HH:mm:ss 6:增加了 / 目录的映射跳转到swagger 7:增加了翻译注解,可以写自定义class翻译功能,前后端交互或数据库交互时使用 @Translator @Translate @TranslateField 8:增加了@Debug注解,在提前上测试环境与前端联调时,搭配spring.debug=true使用,可以写Debug逻辑 ``` ## 4:gf-support 提供一些额外的业务组件。暂时没用 ## 5:dependencies 统一依赖管理。里面的组件和依赖,都经过统一版本管理,后续应用层只需要import dependencies,直接pom写需要的组件,不需要再手动写