SpringMVC+Nutz框架介绍 下载本文

内容发布更新时间 : 2024/5/23 10:55:01星期一 下面是文章的全部内容请认真阅读。

SpringMVC+Nutz自主框架介绍

一、 框架概况

基于经典技术组合(Spring MVC、Apache Shiro、Bootstrap UI)开发的企业级分布式基础开发平台,实现企业开发常用功能:组织机构、角色用户、权限授权、数据权限、内容管理、微信管理等。

使用的后台技术包括Spring、Spring MVC、Spring Cache、Nutz、Shiro、Jedis、Dubbo、RabbitMQ、Quartz、Elasticsearch、FastDFS、Ehcache、Beetl、Log4j等,前端技术包括Jquery、Bootstrap、Pjax等。

? ? ? ? ? ? ? ? ? ? ? ?

模块化可自由拆分(分布式可选择Dubbo/RSF实现)

集成Shiro权限框架(支持二级缓存,通过Redis实现支持session同步) 集成Ehcache缓存(Shiro一级缓存)

集成Jedis(redis的java实现,支持Redis集群模式和单机模式切换) 集成Email服务(可选择启用) 集成Quartz定时任务(支持集群部署) 集成Beetl模板引擎(功能强大便捷)

支持语言国际化(直接写汉字不需要Unicode转换,一种语言一个文件夹) 支持方法日志记录(@SLog注解自动记录日志)

支持文件输出(@SFile注解自动输出文件,比如输出PDF格式) 支持json输出(@SJson注解自动输出json字符串) 支持自定义路由(显性转发或隐性转发)

? ? ? ? ?

支持API Token及应用管理(Jwt实现token机制) 后台管理界面采用Pjax+Bootstrap

系统模块(单位、角色、用户、菜单等完整的权限体系) CMS模块(简易的内容管理功能)

微信模块(支持多公众号、微信支付等功能)

二、 与xx框架对比分析

1、 Dao

1) 使用NutDao,简化数据库增删改查操作,天然的过滤非法字符,

防止sql注入;

2) 兼容各类型数据库,只需对自定义SQL部分进行兼容性改造即

可快速部署在MySQL、Oracle/达梦、MSSQL等各类数据库上; 3) 可通过实体类生成各类数据库的表结构、索引、序列或触发器

等,支持动态分表,建立空白数据库启动项目时自动初始化表结构和数据;

4) 支持多数据源,并兼容hibernate、mybatis等其他第三方ORM

框架; 2、 Service

1) Spring Cache方法缓存,对方法执行结果进行缓存,而非每条表

数据,因为大部分业务是不需要用缓存的,比如后台的增删改查管理;以前项目中经常出现因为缓存嵌套的问题加上缓存更

新不了造成的数据不一致问题;使用redis实现,支持自定义cachekey、cachename、可通过通配符清空部分缓存、可设置缓存失效时间等,并支持redis缓存的集群部署模式;

2) 增删改方法中手动添加事务注解,而非全局事务,在某些查询

数据环节减少没必要事务操作,之前项目中出现因为事务回写,造成前台异常数据入库的情况; 3、 Controller

1) @SJson注解,统一将执行结果转换为json字符串输出,统一的

Result类,支持Vue等MVVM框架及前后端分离开发模式;此注解支持Jsonp格式输出;

2) @SFile注解,方便的输出图片、文件、字节流等文件类型,通

过@SFile(“pdf”)直接输出PDF文件;

3) @Slog注解,统一且可扩展的日志体系,可根据需要记录时间、

操作人、请求路径、输入参数、输出结果等,可将结果记录在数据库、mongodb或文件中;

4) 封装datatablesjs组件,后台分页查询使用起来非常简便,之前

项目后台用到的分页组件及代码封装都做的非常固化且容错率低,做个高级查询开发一不小心就出错; 4、 权限体系

1) 基于shiro权限框架的深度改造,一级缓存使用ehcache实现性

能更优,二级缓存使用redis实现持久化、session同步等功能;