layui框架简介

layui框架简介

快速开发平台基于Spring Boot与Spring Security构建,整合了MyBatis作为持久层框架,使用Thymeleaf作为前端模板引擎,并且引入了Activiti工作流引擎。该平台基于Layui后台管理系统模板,扩展了原生UI样式,提供了便捷的开发方式,延续LayuiAdmin的设计风格,持续完善组件的维护和菜单构建的异步Ajax方式。

一、内置功能

1. 用户管理:配置系统操作者,完成系统用户配置。

2. 权限管理:配置系统菜单、操作权限、按钮权限标识等。

3. 角色管理:分配角色菜单权限、按机构进行数据范围权限划分。

4. 字典管理:维护系统中经常使用的一些固定数据。

5. 参数管理:配置系统动态参数。

6. 通知公告:发布和维护系统通知公告信息。

7. 操作日志:记录和查询系统正常操作日志和系统异常信息日志。

8. 登录日志:记录查询系统登录日志,包括登录异常。

11. 系统接口:根据业务代码自动生成相关的api接口文档。

12. 服务监控:当前系统CPU、内存、磁盘、堆栈等信息。

13. 在线构建器:通过拖动表单元素生成相应的HTML代码。

14. 连接池:当前系统数据库连接池状态,分析SQL找出系统性能瓶颈。

二、技术细节

1. MyBatis简介:

– MyBatis是一个半ORM框架,内部封装了JDBC,只需关注SQL语句本身,无需处理繁琐的JDBC过程。

– MyBatis使用XML或注解配置和映射原生信息,将POJO映射成数据库记录。

– MyBatis通过xml文件或注解方式配置各种statement,通过java对象和statement中的动态sql参数进行映射,生成最终执行的sql,并返回结果。

2. MyBatis优点与缺点:

– 优点:基于SQL编程,灵活;不会对现有应用或数据库设计造成影响;提供XML标签支持编写动态SQL,可重用;减少JDBC代码和手动设置参数、获取结果集;兼容各种数据库;与Spring集成良好;提供对象关系映射标签,支持对象关系组件维护。

– 缺点:SQL语句编写工作量大,尤其当字段多、关联表多时;对开发人员SQL功底有一定要求;数据库移植性差。

3. MyBatis中{}和${}的区别:

– {…}是预编译处理,用于防止SQL注入,提高系统安全性;${…}是字符串替换。

– MyBatis在处理{…}时,会替换为?号,调用PreparedStatement的set方法来赋值;处理${…}时则直接替换成变量的值。

4. 当实体类属性名与数据库表字段名不一致时,可通过以下两种方式解决:

– 在查询的sql语句中使用别名,让别名和实体类属性名一致。

– 在MyBatis映射文件中,通过标签映射字段名和实体类属性名的关系。

5. MyBatis分页原理:

– 使用RowBounds对象进行内存分页,而非物理分页。

– 可在sql内直接拼写带有物理分页的参数完成物理分页功能,或使用分页插件实现物理分页。

6. MyBatis如何执行批量插入:

– 创建简单的insert语句。

– 在Java代码中通过SqlSession执行批处理插入。

7. MyBatis中的其他XML映射标签:除了常见的select|insert|update|delete标签外,还有动态sql的9个标签等。

8. MyBatis实现一对一、一对多的方式及操作:

– 有联合查询和嵌套查询两种方式。联合查询是通过在resultMap里配置association节点配置一对一的类完成;嵌套查询是根据一个表的结果外键id去另一个表查询数据,也是通过association配置,但另一个表的查询通过select属性配置。

9. MyBatis的缓存机制:

– 整体缓存包括一级缓存(LocalCache)和二级缓存(分布在多个SqlSession间的共享缓存)。

– 一级缓存是SqlSession级别的,命中一级缓存可避免直接对数据库查询,提高性能。

– 二级缓存是SqlSession之间共享的,通过Cache接口实现细粒度的控制。在分布式环境下需考虑使用集中式缓存解决脏数据问题。默认缓存实现是基于本地的,不适用于分布式环境。直接使用Redis、Memcached等分布式缓存可能更为合适。更多源码资料获取方式请私信获取!


layui框架简介