基于SpringBoot的系列开发工具包,MornBoot不是SpringBoot的替代品,而是其向业务方向延伸。MornBoot初衷是提供简洁的、可拓展的通用业务实现,为SpringBoot项目提供一个良好的开端。MornBoot侧重于开发风格、标准、规范,提供可供参考的优秀实践。
- “零”配置实现通用业务
- 极简风格代码,良好可读性
- 友好的IDE提示信息
- 支持自定义扩展
MornBoot没有强制依赖SpringBoot,你必须在项目中引入SpringBoot相关包,好处是你可以自由选择依赖版本。建议SpringBoot版本为1.5.X+,尚未测试最低兼容版本。
[dev]
表示该功能正在开发中[expect]
表示该功能将在后续版本中推出
当前版本:1.0.0
<!--自动化配置-->
<dependency>
<groupId>site.morn.boot</groupId>
<artifactId>morn-boot-autoconfigure</artifactId>
<version>${morn.version}</version>
</dependency>
<!--核心库-->
<dependency>
<groupId>site.morn.boot</groupId>
<artifactId>morn-boot-core</artifactId>
<version>${morn.version}</version>
</dependency>
<!--Web-->
<dependency>
<groupId>site.morn.boot</groupId>
<artifactId>morn-boot-web</artifactId>
<version>${morn.version}</version>
</dependency>
MornBoot提供快速构建应用提示消息和应用异常的工具类。使用ApplicationMessages
生成应用消息:
ApplicationMessage message = ApplicationMessages.translateMessage("login.password-is-null");
log.info(message.toString());
// ApplicationMessage(code=login.password-is-null, message=登录密码不能为空, solution=请输入登录密码)
MornBoot提供更多的注解对实例进行描述,使用IdentifiedBeanCache
实例缓存检索需要的实例。
// 根据标签和目标类型检索Bean
BeanIdentify beanIdentify = BeanIdentify.builder().tags(ArrayUtils.merge("odd"))
.target(TestBeanB.class)
.build();
List<Object> search = identifiedBeanCache.beans(Object.class, beanIdentify);
MornBoot可以对常见异常进行自动处理,当代码执行异常时,会自动捕获异常并解释为友好的提示信息。
MySQL唯一约束提示
{
"code": "morn.error",
"level": "error",
"success": false,
"message": "数据重复,user.username已存在"
}
MornBoot提供通用的注解及处理器,完成对操作日志的监听和处理。
// 操作分组
@OperateGroup("user")
public class UserController {
// 新增操作
@OperateAction("add")
Map<String, Object> addUser(Map<String, Object> user) {
OperateArguments.add(user.get("username"));
return user;
}
// 更新操作
@OperateAction("update")
Map<String, Object> updateUser(Map<String, Object> user) {
OperateArguments.add(user.get("username"));
OperateArguments.add(user.get("password"));
throw new RuntimeException("异常测试");
}
}
构建消息
RestBuilders.successMessage();
输出结果
{
"code": "success",
"data": null,
"level": "info",
"message": "操作成功",
"success": true
}
校验方法
@PostMapping("/login")
public Object login(@Valid User user) {
return null; // 校验失败时,此处代码不会执行
}
输出结果
{
"code": "morn.error",
"level": "error",
"success": false,
"message": "user.password个数必须在4和32之间,user.username不能为null"
}