首页
/ Guns V2.5:基于SpringBoot的企业级开发框架

Guns V2.5:基于SpringBoot的企业级开发框架

2024-10-09 22:41:03作者:史锋燃Gardner

项目介绍

Guns V2.5 是一款基于 SpringBoot 的企业级开发框架,旨在为企业级应用提供一套简洁、高效、易扩展的解决方案。该项目由 stylefengGuns 项目 fork 而来,并在原有基础上进行了全面升级和优化。Guns V2.5 完美整合了 SpringMVC、Shiro、MyBatis 通用 Mapper、分页插件 PageHelper 以及 Beetl 模板引擎,为企业级应用开发提供了强大的支持。

项目技术分析

核心技术栈

  • SpringBoot:作为项目的核心框架,简化了项目的配置和依赖管理,让开发者更专注于业务逻辑的实现。
  • MyBatis 通用 Mapper:通过通用 Mapper,开发者可以大幅减少 SQL 语句的编写,提高开发效率。
  • 分页插件 PageHelper:集成 PageHelper 插件,轻松实现数据库查询的分页功能。
  • Beetl 模板引擎:Beetl 提供了简洁高效的模板语法,使得前端页面的开发更加便捷。

依赖管理

Guns V2.5 引入了以下两个关键依赖:

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>${mapper-starter.version}</version>
</dependency>
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>${pagehelper-starter.version}</version>
</dependency>

这些依赖的引入,使得项目在数据访问层和分页处理上更加高效和便捷。

项目结构

Guns V2.5 的项目结构清晰,代码组织合理,便于团队协作和维护。主要包结构如下:

├─main
│  │  
│  ├─java
│  │   │
│  │   ├─com.stylefeng.guns----------------项目主代码
│  │   │          │
│  │   │          ├─common----------------项目公用的部分(业务中经常调用的类,例如常量,异常,实体,注解,分页类,节点类)
│  │   │          │
│  │   │          ├─config----------------项目配置代码(例如mybtais-plus配置,ehcache配置等)
│  │   │          │
│  │   │          ├─core----------------项目运行的核心依靠(例如aop日志记录,拦截器,监听器,guns模板引擎,shiro权限检查等)
│  │   │          │
│  │   │          ├─modular----------------项目业务代码
│  │   │          │
│  │   │          ├─GunsApplication类----------------以main方法启动springboot的类
│  │   │          │
│  │   │          └─GunsServletInitializer类----------------用servlet容器启动springboot的核心类
│  │   │
│  │   └─generator----------------mybatis-plus Entity生成器
│  │
│  ├─resources----------------项目资源文件
│  │     │
│  │     ├─gunsTemplate----------------guns代码生成模板
│  │     │ 
│  │     ├─application.yml----------------springboot项目配置
│  │     │ 
│  │     └─ehcache.xml----------------ehcache缓存配置
│  │
│  └─webapp----------------web页面和静态资源存放的目录

项目及技术应用场景

Guns V2.5 适用于各种企业级应用的开发,尤其是需要快速构建后台管理系统、业务管理系统等场景。其强大的技术栈和丰富的功能模块,使得项目在以下场景中表现尤为出色:

  • 企业内部管理系统:如人力资源管理系统、财务管理系统、客户关系管理系统等。
  • 电商后台管理系统:支持商品管理、订单管理、用户管理等功能。
  • 数据分析平台:通过分页插件和通用 Mapper,轻松实现大数据量的查询和展示。

项目特点

1. 基于 SpringBoot 的简洁配置

Guns V2.5 基于 SpringBoot,简化了大量项目配置和 Maven 依赖,让开发者更专注于业务开发。独特的分包方式,使得代码多而不乱,易于维护。

2. 完善的日志记录体系

项目提供了完善的日志记录体系,可记录登录日志、业务操作日志(包括操作前后的数据变化)、异常日志到数据库。通过 @BussinessLog 注解和 LogObjectHolder 类,业务操作日志可具体记录哪个用户执行了哪些操作,修改了哪些数据,并且日志记录为异步执行,确保系统性能不受影响。

3. 前端页面优化

利用 Beetl 模板引擎对前台页面进行封装和拆分,使臃肿的 HTML 代码变得简洁,更加易维护。对常用 JS 插件进行二次封装,使 JS 代码变得简洁,更加易维护。

4. 数据缓存与性能优化

通过 Ehcache 框架对经常调用的查询进行缓存,提升系统运行速度。具体实现请见 ConstantFactory 类中 @Cacheable 标记的方法。

5. 灵活的返回结果

Controller 层采用 Map + Wrapper 方式的返回结果,返回给前端更为灵活的数据。通过 Wrapper 包装类,使返回的参数更加具体,更加有含义。

6. 防止 XSS 攻击

通过 XssFilter 类对所有的输入的非法字符串进行过滤以及替换,有效防止 XSS 攻击,提升系统安全性。

7. 代码生成体系

项目提供了简单可用的代码生成体系,通过 SimpleTemplateEngine 可生成带有主页跳转和增删改查的通用控制器、HTML 页面以及相关的 JS,还可以生成 Service 和 Dao。通过 ContextConfig 下的一些列 xxxSwitch 开关,可灵活控制生成模板代码,让开发者把时间放在真正的业务上。

8. 统一的异常拦截机制

通过 @ControllerAdvice 统一对异常进行拦截,具体见 com.stylefeng.guns.core.aop.GlobalExceptionHandler 类,确保系统在出现异常时能够统一处理,提升用户体验。

9. 页面 JS 单例模式

每个页面生成一个唯一的全局变量,提高 JS 的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,更好地维护代码。

10. 数据范围控制

Guns V2.5 独创了 MyBatis 数据范围拦截器,实现对数据权限的过滤。通过在 Mapper 接口的参数中增加 DataScope 对象,可以动态增加一个字段 sexName 直接返回给前台性别的中文名称,提升开发效率。

总结

Guns V2.5 作为一款基于 SpringBoot 的企业级开发框架,凭借其简洁的配置、强大的功能模块和高效的技术栈,为企业级应用开发提供了强有力的支持。无论是企业内部管理系统、电商后台管理系统,还是数据分析平台,Guns V2.5 都能轻松应对,帮助开发者快速构建高效、稳定的企业级应用。

如果你正在寻找一款高效、易用的企业级开发框架,Guns V2.5 绝对值得一试!

热门项目推荐
相关项目推荐

项目优选

收起
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
33
24
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
828
0
redis-sdkredis-sdk
仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。
Cangjie
376
32
advanced-javaadvanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
75.92 K
19.09 K
qwerty-learnerqwerty-learner
为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers
TSX
15.62 K
1.45 K
easy-eseasy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
19
2
杨帆测试平台杨帆测试平台
扬帆测试平台是一款高效、可靠的自动化测试平台,旨在帮助团队提升测试效率、降低测试成本。该平台包括用例管理、定时任务、执行记录等功能模块,支持多种类型的测试用例,目前支持API(http和grpc协议)、性能、CI调用等功能,并且可定制化,灵活满足不同场景的需求。 其中,支持批量执行、并发执行等高级功能。通过用例设置,可以设置用例的基本信息、运行配置、环境变量等,灵活控制用例的执行。
JavaScript
9
1
Yi-CoderYi-Coder
Yi Coder 编程模型,小而强大的编程助手
HTML
57
7
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
147
26
markdown4cjmarkdown4cj
一个markdown解析和展示的库
Cangjie
10
1