JeeSite 4.x

Spring Boot 最好的快速开发平台

架构特点、安全方面、为什么好、我们的优势

1、架构特点

  1. 以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。
  2. 模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 SQL 脚本。
  3. 功能授权模块灵活,按钮级别,支持 单点登录、第三方登录,丰富的扩展模块,简单 yml 配置即可实现。
  4. 支持多数据源,深入 MyBatis 底层事务,从 DAO 层切换多数据源,方便快捷,彻底的解决必须从 Controller 里切换数据源的麻烦。并且支持,分布式事务,跨应用级别的事务,简单 yml 配置即可实现。
  5. 数据表主键优化思想,如分类科目表,采用有意义的主键方式,让客户去自定义,减少后期运维维护成本。
  6. 独创 @Table 注解(优于MyBatis-Plus)在 MyBatis 基础上 Dao 层封装:

    • 自动生成增删改 SQL,不需要在 mapper.xml 里写重复又费时的 SQL 了,减少开发和后期维护成本。
    • 列表查询条件通过实体自动生成,不用你写各式各样的 *Wrapper、手写字段名、if判断查询条件等。
    • 所有列 @Column 定义均放到类头,而不是分布到各个属性或方法上,非常好,主要是有如下原因:
    • 一是,放到表头的好处是,可一览熟知该实体类对应的物理表结构是什么样,开发者思维从物理表结构到对象的映射转换,都是基于物理表结构的,减少后期代码分析的维护成本,@Column 指定物理字段名,而不是指定类上的属性名,也是这个原因;
    • 二是,生成的 SQL 和查询条件,可定义列的排列顺序,方便核查定义,优化查询,提升性能;
    • 三是,方便 @JoinTable 关联表和其它扩展信息的设置,如果分布到类的属性上就不太好管理列。
  7. 数据权限:不仅仅是角色,颗粒度细化到每个人员的身上,可自定义第三方数据权限,不仅仅是部门和公司,你可以扩展,如:地区,栏目分类,商品分类,无需让你多写代码,简单调用即可实现复杂的数据权限控制。并且支持跨应用、跨进程的微服务级别的数据权限控制。
  8. 缓存监控:采用 J2Cache 二级缓存,支持快速切换为 Redis 缓存,支持集群 Session 和系统缓存共享
  9. 服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。
  10. 支持 SAAS 多租户模式:每个租户数据通过 corp_code 字段进行分离,数据互不干扰。
  11. 支持 Spring Cloud 架构:分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。
  12. 树结构的图特设计:提高运维、数据分析、优化查询。
  13. 多用户类型支持:员工、会员、专家、往来单位等。
  14. 丰富的内置功能:用户权限、数据权限、系统管理。
  15. 定时任务在线配置,界面化生成 cron 表达式,支持集群环境自适应,调度日志监控。
  16. BPM 业务流程模块:基于 Flowable,支持退回、自由流、会签等高级应用。
  17. 在线预览系统:文件管理、在线预览图片、文档、文本、视频等格式
  18. 消息推送:APP、短信、邮件、微信,你无需了解消息是怎么发送出去的,只需了解消息发送接口即可。
  19. 提供丰富的移动端接口、第三方系统调用接口,轻松实现授权认证、数据调用(支持 json、xml 等格式)
  20. 国际化的支持,页面标签国际化,字典菜单国际化,数据国际化(中文、英语、日语等),可以使用中文key方便后期维护。
  21. 在线代码生成工具,操作简化及优化,支持多数据源(单表、主子表、树表、Cloud等模板,支持自由扩展)。
  22. 文件上传组件,支持分片上传,断点续传下载,上传上传排序、预览、图片压缩等。
  23. 集成云存储客户端模块,已支持:阿里云OSS、腾讯云COS、七牛云、MinIO
  24. 在线查询在线人员,强踢在线账号。
  25. 提供丰富的在线文档及案例。

2、安全方面

  1. 系统采用Java 语言开发,具有卓越的通用性、高效性、平台移植性和安全性(适应全行业的软件)。
  2. 分层设计层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验,保证数据操作的安全。
  3. 双重验证,用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等)避免客户端跳过验证直接操作数据库。
  4. 安全编码,用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。
  5. 密码加密,登录用户密码进行SHA1散列加密,此加密方法是不可逆的。保证密文泄露后的安全问题。
  6. 强制访问,系统对管理端链接都进行用户身份权限验证及权限,防止用户直接获取资源。
  7. 数据库密码及其它安全密钥自动加密配置(只需配置参数即可实现,无需使用复杂的秘钥生成功能)。
  8. MyBatis 参数采用安全接受,特殊操作都必须经过 SQL 安全过滤,杜绝 SQL 注入问题。
  9. 所有请求参数获取,均通过 XSS 跨站脚本过滤方法,杜绝 XSS 问题。
  10. 乐观锁简单实现,避免一条数据多人同时操作时的数据覆盖,提高数据安全性。
  11. 通过 yml 简单配置,轻松解决 JS 是否允许跨域操作,自适应跨域情况。
  12. 身份认证:

    • 登录失败多少次后显示验证码。
    • 登录失败多少次后锁定账号及锁定账号时间。
    • 登录账号密码可加密后再提交后台。
    • 同设备是否允许账号多地登录。
  13. 密码策略:

    • 初始密码修改策略,提醒或强制用户修改初始密码。
    • 账号密码修改策略,多长时间内未修改,则提醒或强制修改密码。
    • 开关控制密码修改多少次内不允许重复,验证与上次或前几次的密码是否相同。
    • 开关控制账号密码修改最低安全等级,很弱、弱、安全、很安全,四个等级,强制或提醒。
  14. 权限审计:

    • 账号密码审计(未修改初始密码、使用简单密码、定期未修改密码、长期未登录、未设置密保、以上全部、审计结果数据导出)
    • 菜单权限审计(根据菜单及权限查询,都有哪些用户)
    • 用户权限审计(根据用户查询,都有哪些菜单及权限)
  15. 登录提交信息加密(支持 DES 加密、Base64加密等)
  16. 支持设置获取客户端IP的Header名称,防止IP伪造。
  17. 支持设置允许的请求方法设定(如:仅允许 GET、POST 请求)
  18. 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
  19. 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
  20. 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如 银行系统 个人首页不允许刷新。
  21. 是否允许嵌入到外部网站iframe中(true:不限制,false:不允许)
  22. 是否允许跨域访问 CORS,解决 Cookie 跨域访问问题。
  23. 是否允许跨域访问时 CORS,可以使用的方法和响应头(如:仅允许 GET、POST 请求)
  24. 是否允许接收跨域的 Cookie 凭证数据 CORS 设置
  25. 是否允许的网站来源地址,不设置为全部地址(避免一些跨站点请求伪造 CSRF)
  26. 是否在登录后生成新的Session(默认false)安全系数更高的系统设置
  27. 可设置多个允许的内部系统 IP 地址的白名单,否则拒绝访问

3、用户界面

  1. 基于 Bootstrap 平面化界面设计,精细,更加美观、高端、大气、上档次。
  2. 支持手机或平板访问,响应式样式、响应式布局,根据屏幕分辨率自适应控件布局。
  3. 无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。
  4. 支持一键换肤,只需在 yml 里修改下主题名称即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。
  5. 优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。
  6. 支持 ie9+ 及其他任何浏览器。

4、前端开发

  1. 采用当前比较流行的 Beetl 模板引擎,它的优点很多,大家可自行查阅看看,这里不多说了。
  2. 封装 Beetl UI 通用组件,简单实现基本表单控件、树选择,列表选择,文件上传,等等,总之是简化开发。
  3. 数据表格 jqGrid 组件封装,自动完成分页、排序、列宽、多表头、子表、编辑表、等。
  4. 支持前后分离应用,方便与手机 API 接口对接,Token 方式授权。

5、功能及组件

  1. 工具类 Utils 封装优化,应有尽有,包分类层次分明,独立工具类项目。
  2. 强大的 Excel 导出导入工具封装,支持大数据量,注解定义,简单配置即可实现。

6、我们的优势

JeeSite 整体架构清晰、稳定技术先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。

JeeSite 功能全,JeeSite 的知识点非常多,也非常少。因为她使用的都是一些通用的技术,通俗的设计风格,大多数基础知识点多数人都能掌握,所以每一个 JeeSite 的功能点都非常容易掌握。只要你学会使用这些功能和组件的应用,就可以顺利的完成系统开发了。

JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,封装不是限制你去做一些事情,而是在便捷的同时,也具有较好的扩展性,在不具备一些功能的情况下,JeeSite 提供了扩展接口,提供了原生调用方法。

大家都在用 Spring ,在学习 Spring 架构的优点,Spring 提供了较好的扩展性,可又有多少人去修改它的源代码呢,退一步说,大家去修改了 Spring 的源码,反而会对未来升级造成很大困扰,您说不是呢?这样的例子很多,所以不要纠结,JeeSite 也一样具备强大的扩展性。

发展至今 JeeSite 平台架构已经非常稳定,JeeSite 是一个专业的平台,是一个让你使用放心的平台。


阿里云【爆款特惠】精选爆款产品低至0.95折

关注 JeeSite 公众号,了解最新动态