编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
JeeSite(快速开发平台),不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,基于 Spring Boot、Spring MVC、Shiro、MyBatis、Beetl、Bootstrap、AdminLTE 在线代码生成功能,采用经典开发模式,让初学者能够更快的入门并投入到团队开发中去。
架构特点
以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。
模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 SQL 脚本。
功能授权模块灵活,按钮级别,支持 单点登录、第三方登录,丰富的扩展模块,简单 yml 配置即可实现。
支持多数据源,深入 MyBatis 底层事务,从 DAO 层切换多数据源,方便快捷,彻底的解决必须从 Controller 里切换数据源的麻烦。并且支持,分布式事务,跨应用级别的事务,简单 yml 配置即可实现。
数据表主键优化思想,如分类科目表,采用有意义的主键方式,让客户去自定义,减少后期运维维护成本。
独创 @Table 注解(优于MyBatis-Plus)在 MyBatis 基础上 Dao 层封装:
自动生成增删改 SQL,不需要在 mapper.xml 里写重复又费时的 SQL 了,减少开发和后期维护成本。
列表查询条件通过实体自动生成,不用你写各式各样的 *Wrapper、手写字段名、if判断查询条件等。
所有列 @Column 定义均放到类头,而不是分布到各个属性或方法上,非常好,主要是有如下原因:
一是,放到表头的好处是,可一览熟知该实体类对应的物理表结构是什么样,开发者思维从物理表结构到对象的映射转换,都是基于物理表结构的,减少后期代码分析的维护成本,@Column 指定物理字段名,而不是指定类上的属性名,也是这个原因;
二是,生成的 SQL 和查询条件,可定义列的排列顺序,方便核查定义,优化查询,提升性能;
三是,方便 @JoinTable 关联表和其它扩展信息的设置,如果分布到类的属性上就不太好管理列。
数据权限:不仅仅是角色,颗粒度细化到每个人员的身上,可自定义第三方数据权限,不仅仅是部门和公司,你可以扩展,如:地区,栏目分类,商品分类,无需让你多写代码,简单调用即可实现复杂的数据权限控制。并且支持跨应用、跨进程的微服务级别的数据权限控制。
缓存监控:采用 J2Cache 二级缓存,支持快速切换为 Redis 缓存,支持集群 Session 和系统缓存共享。
服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。
支持 SAAS 多租户模式:每个租户数据通过 corp_code 字段进行分离,数据互不干扰。
支持 Spring Cloud 架构:分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。
树结构的图特设计:提高运维、数据分析、优化查询。
多用户类型支持:员工、会员、专家、往来单位等。
丰富的内置功能:用户权限、数据权限、系统管理。
定时任务在线配置,界面化生成 cron 表达式,支持集群环境自适应,调度日志监控。
BPM 业务流程模块:基于 Flowable,支持退回、自由流、会签等高级应用。
在线预览系统:文件管理、在线预览图片、文档、文本、视频等格式
消息推送:APP、短信、邮件、微信,你无需了解消息是怎么发送出去的,只需了解消息发送接口即可。
提供丰富的移动端接口、第三方系统调用接口,轻松实现授权认证、数据调用(支持 json、xml 等格式)
国际化的支持,页面标签国际化,字典菜单国际化,数据国际化(中文、英语、日语等),可以使用中文key方便后期维护。
在线代码生成工具,操作简化及优化,支持多数据源(单表、主子表、树表、Cloud等模板,支持自由扩展)。
文件上传组件,支持分片上传,断点续传下载,上传上传排序、预览、图片压缩等。
集成云存储客户端模块,已支持:阿里云OSS、腾讯云COS、七牛云、MinIO
在线查询在线人员,强踢在线账号。
提供丰富的在线文档及案例。
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。