# might-framework **Repository Path**: mightlin/might-framework ## Basic Information - **Project Name**: might-framework - **Description**: 快速开发框架 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2023-03-15 - **Last Updated**: 2023-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # might-framework #### 介绍 > 基于springboot、mybatis-plus封装的JavaWeb快速开发框架 > > 传统三层架构代码是面试过程编程,DDD领域驱动则是面向对象编程。领域驱动的明显特征就是高内聚、低耦合。领域驱动的有点明显同时缺点也明显: 缺乏统一的标准,实施难度大。 > > 这个框架就是为了方便实现易于维护,可重用性好,易拓展的,高内聚低耦合的代码。统一范式的开发, > 设计(领域层)与实现分层(应用层),面向指令编程。可根据实体对象一键生成基础代码,根据指令实体自动生成接口文档。 ##### 面向指令编程的代码: ``` /** * 创建字典 * * @author system * @tags 系统管理/字典 * @Date: 2023-11-25 15:46 */ @Data @EqualsAndHashCode(callSuper = true) @DomainCommand(path = "/sys/dict/create", desc = "创建字典", needLog = true) public class DictCreate extends DomainCmd { /** * id */ private Long id; /** * 字典名称 */ private String name; /** * 编码 */ private String code; /** * 描述 */ private String remark; /** * 字典项 */ private List items; } /** * 字典指令处理器 * * @Author: system * @Date: 2023-11-25 15:46 */ @HandlerComponent public class DictCmdHandler extends BaseCmdHandler { } ``` ##### 指令的调用: ``` java /** * 操作日志处理 * * @author might */ @Component @RequiredArgsConstructor public class SysOperateLogHandler implements OperateLogHandler { private final Ip2regionSearcher regionSearcher; @Override public void saveLog(OperateLogModel operateLogModel) { String clientIP = HttpContextHolder.getClientIP(); // 保存日志 OptLogCreate optLogCreate = new OptLogCreate(); optLogCreate.setTitle(operateLogModel.getTitle()); optLogCreate.setTraceId(operateLogModel.getTraceId()); optLogCreate.setIpAddr(clientIP); optLogCreate.setIpPlace(regionSearcher.getAddress(clientIP)); optLogCreate.setUrl(HttpContextHolder.getHttpRequestWrapper().getRequestURL().toString()); optLogCreate.setRemark(operateLogModel.getRemark()); optLogCreate.setUserId(Long.valueOf(operateLogModel.getUserId())); optLogCreate.setUsername(operateLogModel.getUsername()); optLogCreate.setDataLog(operateLogModel.getChangeData()); optLogCreate.setCreateTime(new Date(operateLogModel.getOptTime())); optLogCreate.execute(); } } ``` 以前的话还要注如service,再去调用。现在面向对象,更简单,可读性更高了 optLogCreate.execute() 即完成调用(依赖反转,指令会匹配到应用层中的handler方法,调用指令的处理逻辑) ### 后台管理系统 #### 演示地址: https://mgiht.if4.ttyt.cc/ | 项目 | 描述 | gitee 地址 | |------------------|-----------------|---------------------------------------------| | might-module-sys | might-admin后端代码 | https://gitee.com/mightlin/might-module-sys | | might-admin-web | might-admin前端代码 | https://gitee.com/mightlin/might-admin-web | ````