Http调用工具spring-feign 设计文档

Feign是Netflix发布的一款轻量级Rest客户端框架,提供了一种声明式的服务调用组件,通过Feign只需声明一个接口并通过注解进行简单的配置即可实现对Http接口的绑定。然后就可以像调用本地方法一样来调用远程服务,而完全感觉不到是在进行远程调用。

Feign支持多种注解,比如Feign自带的注解以及JAX-RS注解,但遗憾的是Feign本身并不支持Spring mvc注解,这无疑会给广大Spring用户带来不便。于是Spring Cloud又对Feign进行了封装,使其方便集成到Spring项目中,并添加了对Spring mvc注解的支持,以及简化与负载均衡、服务注册发现、断路器等组件的集成,所以集成之后又叫Spring Cloud Feign

https://github.com/shanhm1991/spring-feign

任务管理工具spring-fom 设计文档

写这个工具最开始只是为了解决各种离线数据文件的处理,其中涉及比较多的任务处理。当时刚进入公司参与第一个项目,但是意识到公司的产品业务基本上都是围绕着数据做一些信息挖掘,尤其是离线数据,所以后续应该还会有很多各种各样的任务式场景。后来参与的各种项目也确实印证了自己的想法,所以确实能在一些项目中发挥作用,提高工作中的开发效率和质量,以及运维的能力。

目标是实现一个轻量级的通用任务管理框架,主要针对的是定时任务。在功能上除了能支持常见的场景外,希望也能支持一定的实时监控管理,而在结构设计上要有足够的扩展性以方便进行定制,同时在使用方式上要简洁清晰,对原代码尽量少的侵入。由于当时是设计用来处理文件的,又是基于spring容器管理的,所以取名为spring-fom。

https://github.com/shanhm1991/spring-fom

Liquibase管理数据库版本

Liquibase是一个用于用于跟踪和管理应用数据库变化的开源工具,通过changelog日志的形式来记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种与数据库类型无关的解决方案,主要优点包括:

  • 支持几乎所有主流的数据库,包括Oracle、Sql Server、DB2、MySql、Sybase、PostgreSQL等,这样在数据库的部署和升级环节可以支持多数据库;
  • 日志文件支持多种格式,如XML、YAML、JSON、SQL等;
  • 支持回滚功能,可以按时间、数量、标签回滚变化;

官网文档:https://docs.liquibase.com/home.html

smart-doc生成接口文档

smart-doc是一款支持Java Rest Api和Apache Dubbo Rpc接口文档生成的工具,官方文档已经介绍得很好,就不过多赘述了。相比swagger基于注解生成接口文档,它基于注释来生成,将代码无侵入这一目标进行的更加彻底,生成的接口文档画风也非常简单干净,而且支持JSR-303规范,可以解析Validation API相关的参数校验。这里记录一下在springboot应用中通过maven插件来生成smart接口文档的具体实践。

官网文档:https://smart-doc-group.github.io/#/zh-cn/?id=smart-doc