# MornBoot

Maven Central (opens new window) Build Status (opens new window) Codacy Badge (opens new window) codecov (opens new window) LICENSE (opens new window)

MornBoot是基于SpringBoot的标准API框架,致力于为JavaWeb项目提供标准化API。MornBoot初衷是提供简洁的、可拓展的基础组件,为业务项目提供一个良好的开端。MornBoot侧重于开发风格、标准、规范,提供开箱即用的优秀实践。

如果你的所有项目都使用同一套API开发,那么更新、维护将变得多么简单!

# 介绍

MornBoot最核心的功能是一套标准基础组件,这些组件与业务代码完全分离,无论业务代码如何变更或完全颠覆,都能保证基础组件恒定不变。部分组件甚至会依据业务实现,表现完全不同的响应结果。除此以外,MornBoot也包含了一些常用业务组件和框架的封装,它们不是简单的聚合在一起,而是秉承了MornBoot的理念。

接下来,我们来了解下MornBoot的框架定位,但你也可以 直接集成

# 初识

MornBoot介于功能框架和业务框架之间,它是一套“组件框架”。MornBoot的很多组件距离业务实现还差“临门一脚”,这一步需要在业务代码中实现,正是这种设计让MornBoot自由融入千奇百怪的业务框架中。

OperateLog 操作日志REST消息响应为例,我们来更清晰的认识它。

职责划分

  • SpringBoot提供了Web应用的必备功能,集成Web容器、请求调度、AOP等
  • MornBoot提供了操作日志的注解、统一切面、操作日志元数据模型,以及完成日志执行器的调度
  • 业务框架则使用日志注解,完成操作日志的声明;并实现一个全局的日志执行器实例,以便存储日志

让我来告诉你,MornBoot做了哪些隐藏工作:

  1. 在非Web环境下,日志元数据记录操作状态、操作时间、操作名称、消耗时间、入参、出参等信息
  2. 在Web环境下,日志元数据额外记录请求地址、访问者IP、客户端信息等
  3. 在Security环境下,日志元数据额外记录操作人信息
  4. 支持实现任意个操作日志适配器实例,以自由填充操作日志元数据
  5. 支持实现任意个操作日志执行器实例,可同步/异步执行,以便发送、存储日志元数据
  6. 在基础环境缺失或未实现操作日志执行器的情况下,自动忽略日志功能,无需移除任何代码

至此,你明白MornBoot的定位了吗,你来编写最后1步,让MornBoot操心前面99步的事情吧!