SpringBoot项目快速开发框架JeecgBoot——项目简介及系统架构!

项目简介及系统架构

Jeecg Boot是一款基于Spring Boot的开发平台,它采用前后端分离架构,集成的框架有Spring Boot 2.x、Spring Cloud、Ant Design of Vue、Mybatis-plus、Shiro和JWT,而且它支持微服务开发。Jeecg Boot还有强大的代码生成功能,能够使用代码生成器一键生成前后端代码,实现项目的快速开发。

Jeecg Boot属于低代码开发平台,可以应用在任何J2EE项目的开发中,尤其适合SaaS项目、企业管理信息系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,它具有半智能手工合并的开发方式,可以提高70%的开发效率或更多,极大地降低了开发成本。

系统功能介绍

Jeecg Boot有成熟的后端模板,也有很高的UI页面水平,不需要做项目开发的重复性工作。Jeecg Boot还独创了在线开发模式,包含一系列在线智能开发,如在线配置表单、在线配置报表、在线设计图表和在线设计流程等。

JEECG团队的开发宗旨是:简单的功能由Online Coding配置实现(在线配置表单、在线配置报表、在线设计图表、在线设计流程和在线设计表单),复杂的功能由代码生成器生成,并进行手工合并,既能保证智能性又能兼顾灵活。

业务中的流程运转采用工作流来实现,还能扩展流程任务接口,由开发者实现具体的业务逻辑。表单提供多种解决方案,如表单设计器、Online配置表单和编码表单,还实现流程与表单的分离设计(松耦合),并支持任务节点的灵活配置,这样既能保证公司流程的保密性,又能减少开发人员的工作量。Jeecg Boot框架已经具备大量可用的功能,在项目开发时可以直接利用现有功能,而不再需要二次开发。已经具备的功能如下:

├─系统管理

│ ├─用户管理、角色管理、菜单管理、部门管理

│ ├─权限设置(支持按钮权限、数据权限)、表单权限(控制字段禁用、隐藏)

│ ├─我的部门(二级管理员)、字典管理、分类字典、系统公告

│ └─职务管理、通讯录、多租户管理

├─消息中心

│ ├─消息管理、模板管理

├─代码生成器(低代码)

│ ├─代码生成器功能(一键生成前后端代码,生成后无须修改便可直接用,是后端开发的福

音)

│ ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,有不同风格可供选择)

│ ├─代码生成器模板(生成代码,自带Excel导入和导出功能)

│ ├─查询过滤器(查询逻辑无须进行编码,系统根据页面配置自动生成)

│ ├─高级查询器(弹窗自动组合查询条件)

│ ├─Excel导入和导出工具集成(支持单表,一对多,导入和导出)

│ ├─平台移动自适应支持

├─系统监控

│ ├─Gateway路由网关、性能扫描监控

│ │ ├─监控 Redis、Tomcat、JVM、服务器信息、请求追踪、磁盘监控

│ ├─定时任务、系统日志

│ ├─消息中心(支持短信、邮件、微信推送等)

│ ├─数据日志(记录数据快照,可对比快照查看数据变更情况)

│ ├─系统通知、SQL监控、swagger-UI(在线接口文档)

│—报表示例

│ ├─曲线图、饼状图、柱状图、折线图、面积图、雷达图、仪表图、进度条、排名列表

│—大屏模板

│ ├─作战指挥中心大屏、物流服务中心大屏

│—常用示例

│ ├─自定义组件、对象存储(对接阿里云)、JVXETable示例(各种复杂的ERP布局示例)

│ ├─单表模型示例、一对多模型示例、打印示例、一对多TAB示例

│ └─内嵌table示例、常用选择组件、异步树table、接口模拟测试

│ └─表格合计示例、异步树列表示例、一对多JEditable

│ └─JEditable组件示例、图片拖拽排序、图片翻页、图片预览、PDF预览

│—封装通用组件

│ ├─行编辑表格JEditableTable、省略显示组件、时间控件、高级查询

│ └─用户选择组件、报表组件封装、字典组件、下拉多选组件、选人组件│ └─选部门组件、通过部门选人组件、在线code编辑器、上传文件组件

│ └─封装曲线、柱状图、饼状图、折线图等报表组件

│ └─验证码组件、树列表组件、表单禁用组件

│—更多页面模板

│ ├─各种高级表单、各种列表效果、结果页面、异常页面、个人页面

├─高级功能

│ ├─系统编码规则、单点登录CAS集成方案

│ ├─提供App发布方案、集成Web Socket消息通知机制

├─积木报表设计器(低代码)

│ ├─打印设计器、数据报表设计、图形报表设计(支持ECharts)

│—流程模块功能(暂不开源)

│ ├─流程设计器、在线表单设计、我的任务、历史流程

│ └─流程实例管理、流程监听管理、流程表达式、我发起的流程

│ └─我的抄送、流程委派、抄送、跳转

更多的功能还在开发中,有兴趣的读者可以关注其进度。

项目开发环境和前后端技术栈

Jeecg Boot的项目开发环境如下:

语言:Java 8;

IDE(Java):基于IDEA或Eclipse安装Lombok插件;

IDE(前端):WebStorm或IDEA;

依赖管理:Maven;

数据库:MySQL 5.7、Oracle 11g或SQL Server 2017;

缓存:Redis。

后端使用的技术栈如下:

基础框架:Spring Boot 2.3.5.RELEASE;

微服务框架:Spring Cloud Alibaba 2.2.3.RELEASE;

持久层框架:Mybatis-plus 3.4.1;

安全框架:Apache Shiro 1.7.0、Jwt 3.11.0;微服务技术栈:Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Skywalking;

数据库连接池:阿里巴巴Druid 1.1.22;

缓存框架:Redis;

日志打印:Logback;

其他:Fastjson、Poi、Swagger-UI、Quartz、Lombok(简化代码)等。

前端使用的技术栈如下:

Vue 2.6.10、Vuex、Vue Router;

Axios;

ant-design-vue;

Webpack、YARN;

vue-cropper——头像裁剪组件;

@antv/g2——Alipay AntV数据可视化图表;

Viser-vue——antv/g2封装实现;

eslint、@vue/cli 3.2.1;

vue-print-nb——打印。

系统结构

Jeecg Boot项目使用Maven作为依赖的管理工具,项目的目录结构是标准的Maven目录。其目录结构如下:

|jeecg-boot

|--->jeecg-boot-base

|------->jeecg-boot-base-api

|----------->jeecg-system-cloud-api

|----------->jeecg-system-local-api

|------->jeecg-boot-base-core

|------->jeecg-boot-base-tools

|--->jeecg-boot-module-demo|--->jeecg-boot-module-system

|--->jeecg-boot-starter

|--->jeecg-boot-module

Jeecg Boot项目的父目录为jeecg-boot,其中包含有多个模块,如jeecg-boot-base、jeecg-boot-module-demo、jeecg-boot-module-system、jeecg-boot-starter和jeecg-boot-module。在这些模块中,jeecg-bootstarter和jeecg-boot-module是微服务必需的项目,jeecg-boot是以SpringBoot为基础搭建的项目,其他的模块都以jeecg-boot为父模块,而jeecg-boot-base下还有子模块jeecg-boot-base-api、jeecg-boot-basecore和jeecg-boot-base-tools。

系统的功能模块

本书使用的Jeecg Boot版本号为2.4.5,这是截至本书写作时Jeecg Boot最新发布的版本。注意,Jeecg Boot 2.4.5版本底层使用的JDK版本和之前的章节使用版本有所不同,它使用的是JDK 1.8,请读者注意更换。下载最新版的Jeecg Boot 2.4.5并将其导入IDEA中,会自动加载Maven的依赖,加载完成后,项目的目录如图8.1所示。

图8.1 Jeecg Boot的目录结构

在图8.1中,项目名称为jeecg-boot,jeecg-boot是父POM,对子模块提供项目依赖,当前项目下有3个模块,分别如下:

jeecg-boot-base为通用模块,包括工具类、配置、权限、查询过滤器、注解和接口等;

jeecg-boot-module-demo为项目的案例代码模块;

jeecg-boot-module-system为系统管理权限等功能模块,默认作为启动项目。jeecg-boot-base项目包括3个项目,分别如下:

jeecg-boot-base-api为API接口项目(又分为云API和本地API项目);

jeecg-boot-base-core为核心项目;

jeecg-boot-base-tools为Jeecg Boot的工具项目。

在后端项目开发中,只需要启动jeecg-boot-module- system就可以访问项目的首页。jeecg-boot-starter为微服务启动模块,jeecg-cloud-module为微服务生态模块,因为本次不涉及微服务,所以最后两个模块不用处理。

使用项目根目录中的docker-compose.yml文件即可在Docker中启动单一的Jeecg Boot项目,docker-compose- server.yml使用Docker启动JeecgBoot和Nginx服务器。使用docker-compose.yml可以快速启动服务,不需要一步一步地搭建依赖的应用。docker-compose.yml文件的内容如下:

version: '2'

services:

jeecg-boot-mysql:

build:

context: ./db

environment:

MYSQL_ROOT_PASSWORD: root

MYSQL_ROOT_HOST: '%'

TZ: Asia/Shanghai

restart: always

container_name: jeecg-boot-mysql

image: jeecg-boot-mysql

command:

--character-set-server=utf8mb4

--collation-server=utf8mb4_general_ci

--explicit_defaults_for_timestamp=true

--lower_case_table_names=1

--max_allowed_packet=128M

--default-authentication-plugin=caching_sha2_password

ports: - 3306:3306

jeecg-boot-redis:

image: redis:5.0

ports:

- 6379:6379

restart: always

hostname: jeecg-boot-redis

container_name: jeecg-boot-redis

jeecg-boot-system:

build:

context: ./jeecg-boot-module-system

restart: on-failure

depends_on:

- jeecg-boot-mysql

- jeecg-boot-redis

container_name: jeecg-boot-system

image: jeecg-boot-system

hostname: jeecg-boot-system

ports:

- 8080:8080

上述代码使用的docker-compose.yml版本是2,使用了MySQL服务和Redis服务,最后启动jeecg-boot-system服务完成项目的启动。

本项目的数据库脚本文件为
jeecg-boot/db/jeecgboot-mysql-5.7.sql,需要手动连接MySQL 5.7,再执行SQL脚本。使用不同的MySQL客户端可能会出现错误,请注意修改,以完成SQL脚本的导入。

提示:如果使用了非MySQL数据库,请注意使用对应的数据库脚本。

配置文件

项目开发中涉及独特的配置文件,包括数据库的配置、Redis的配置和服务器端口的配置等。在Jeecg Boot项目中,配置文件保存在jeecg-boot
module-system/src/main/resources目录下,开发时使用applicationdev.yml文件。因为本地开发使用的是开发环境,所以需要查看开发环境的配置。

数据库的配置信息如下:

datasource:

master:

url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-

8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetri

e

val=true&serverTimezone=Asia/Shanghai

username: root

password: root

driver-class-name: com.mysql.cj.jdbc.Driver

Redis的配置如下:

redis:

database: 0

host: 127.0.0.1

lettuce:

pool:

max-active: 8 #最大的数据库连接数量,设为-1表示没有限制

max-idle: 8 #最大等待连接的数量,设为0表示没有限制

#建立连接的最长等待时间,如果超过此时间将出现异常,设为-1表示无限制

max-wait: -1ms

min-idle: 0 #最小等待连接的数量,设为0表示没有限制

shutdown-timeout: 100ms password: ''

port: 6379

读者可根据自己的数据库配置来修改代码。当前项目使用的日志配置文件是logback- spring.xml,banner.txt为项目启动的自定义标题图案。其他的配置文件可以根据自身的需要进行修改,如非必要可以直接启动项目,而不需要再修改配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/911777.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/911777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业设计软件的范式革命:对象模型与五维市场驱动的未来

工业设计软件的技术洗牌本质 破局关键:万物对象模型的应用 工业设计的对象化重构 class IndustrialDesignObject:def __init__(self, obj_type, attributes):self.metadata = {"type": obj_type,"version": "1.0","entropy_rating"…

VMware 安装Windows 虚拟机,Windows 虚拟机可 ping 通本地电脑,但本地电脑无法 ping 通虚拟机 IP 的解决思路和操作步骤

VMware 安装Windows 虚拟机,Windows 虚拟机可 ping 通本地电脑,但本地电脑无法 ping 通虚拟机 IP 的问题如下图所示: 解决办法: 一、网络连接模式与网段一致性 确认虚拟机网络模式 若用 VMware 等软件,常见模式有 NA…

高精度RTK定位导航模块软硬件协同设计

高精度RTK定位导航模块软硬件协同设计 下载链接:摘要1.1 RTK技术背景与发展现状1.1.1 RTK技术原理与背景1.1.2 技术发展里程碑1.1.3 当前技术挑战与突破1.1.4 应用场景扩展1.1.5 标准化进展1.2.1 高精度定位的计算瓶颈1.2.2 功耗优化需求1.2.3 系统可靠性与实时性保障1.2.4 典型…

【软考高级系统架构论文】论多源数据集成及应用

论文真题 在如今信息爆炸的时代,企业、组织和个人面临着大量的数据。这些数据来自不同的渠道和资源,包括传感器、社交媒体、销售记录等,它们各自具有不同的数据格式、分布和存储方式。因此如何收集、整理和清洗数据,以建立一个一致、完整的数据集尤为重要。多源数据集成可…

如何将这些 SQL 插入语句批量执行?

要批量执行这些SQL插入语句,可根据使用的数据库管理系统(DBMS)选择不同的方法。以下是几种常见的批量执行方式: 1. 使用数据库客户端工具 MySQL / MariaDB 命令行:将所有SQL语句保存到文件(如cities.sql),然后执行: 登…

RedisVL EmbeddingsCache深度实践与最佳指南

一、为什么需要 EmbeddingsCache 减少重复计算 对同一段文本,向量化模型会每次返回相同的嵌入。借助缓存,首次计算后无论后续何时再请求,都能直接复用上次结果。 降低业务延迟 嵌入模型推理耗时(数十毫秒到百毫秒不等&#xff09…

Docker Compose 与 Harbor 私有仓库

目录 简介 一、Docker 容器重启策略与状态码解析 (一)Docker 容器重启策略详解 (二)Docker 容器常见退出状态码 二、Docker Compose 工具深度应用 (一)Docker Compose 简介与安装 (二&am…

thinkphp8之文件上传

文件上传安装 命令&#xff1a;composer require topthink/think-filesystem 二&#xff0e;上传代码、接收代码 <form action"/index/index/index" enctype"multipart/form-data" method"post"> <input type"file" name…

【商业分析】价值流图应用案例:服务器硬件生产

在当今竞争激烈的市场环境下&#xff0c;服务器硬件制造商面临着诸多挑战。本文中&#xff0c;田辛老师将深入探讨价值流图&#xff08;VSM&#xff09;在某服务器硬件生产中的应用案例&#xff0c;展示其如何助力企业实现降本增效。 一、价值流图概述 &#xff08;一&#x…

系统性能优化-4 磁盘

系统性能优化-4 磁盘 磁盘作为计算机中速度最慢的硬件之一&#xff0c;常常是系统的性能瓶颈&#xff0c;优化磁盘一般能得到明显的提升~ 文章以如何高效的传输文件来讨论针对磁盘的优化技术&#xff0c;如零拷贝、直接 IO、异步 IO等。 最简单的网络传输 最简单的方式的当然…

Windows注册HTTP服务实现Jenkins Allure报告、测试日志永久访问

使用 NSSM (Non-Sucking Service Manager) 将 Allure 报告的 HTTP 服务注册为 Windows 后台服务的详细操作攻略&#xff0c;确保 Jenkins 测试结果可以长期通过 URL 访问。 ✅ 目标 将 allure generate 生成的报告目录托管为静态网页服务&#xff0c;并作为后台服务运行&#…

从ADI与AMD的专利诉讼,看高端FPGA的巅峰对决

RFSoC,作为FPGA家族中的“贵族”,高端芯片中的尖端代表,技术积累要求高、利润厚,售价贵,主要面向不差钱的军用雷达处理、通信和测试/测量仪器用户。 2019年,模拟芯片龙头ADI公司,发起专利侵权诉讼,而尝到甜头的赛灵思,一边反诉,一边揶揄ADI公司:爱哭的娃未必有奶吃…

性能测试-jmeter实战3

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战3 负载测试稳定性测试负载测试曲线图其他测试策略并发测试压力测试容量测试 性能指标的介绍响应时间并发用户数…

Maven镜像

在 Maven 中配置多个镜像源&#xff0c;主要是为了解决依赖包在不同地区下载速度不同的问题&#xff0c;或者为了使用特定的私有仓库作为依赖源。Maven 支持在 pom.xml 文件中配置多个镜像源&#xff08;repositories&#xff09;&#xff0c;也可以在 Maven 的全局配置文件 se…

ArduPilot 教程(2):运行第一个 SITL 无人机仿真

目录 1. MAVLink 通信协议 2. MAVProxy 地面控制站 3. 运行 SITL 无人机仿真 3.1. 使用 MAVProxy 控制无人机 3.2. 使用 SITL 地图界面控制无人机 4. MAVProxy 常用命令 5. 其它地面控制站 5.1. QGroundControl 5.2. MissionPlanner 5.3. 不启用 MAVProxy 6. 本讲小…

开源AI大模型驱动下视频媒介对图文生态的重构与S2B2C商业场景创新——基于AI智能名片与商城小程序源码的实践分析

摘要&#xff1a;数字媒介演进的进程中&#xff0c;视频对图片及文字的媒介侵蚀效应正呈现加速态势&#xff0c;尤其在Z世代及新网民群体中&#xff0c;视频已成为其触网的首要信息载体。本文基于媒介技术迭代与商业场景融合的双重视角&#xff0c;探究开源AI大模型如何通过智能…

Kafka线上集群部署方案:从环境选型到资源规划思考

在分布式消息系统的落地应用中&#xff0c;Kafka集群的线上部署方案直接关系到业务系统的稳定性与性能表现。不同于测试环境的简易搭建&#xff0c;生产级集群需要从操作系统适配、存储介质选型、容量规划到网络资源调度等多维度进行系统性设计。本文将从工程实践角度&#xff…

算法第40天|买卖股票的最佳时机 1 2 3

121. 买卖股票的最佳时机 题目 思路与解法 记录每一天买或不买时的价值 class Solution { public:int maxProfit(vector<int>& prices) {// dp数组含义&#xff1a;// dp[i][0]:第i天&#xff0c;持有股票时的最大价值&#xff0c;dp[i][1]:第i天&#xff0c;不持…

【赵渝强老师】使用select...into outfile语句备份MySQL

MySQL可以使用select…into outfile语句将表的内容导出为一个文本文件。其基本的语法格式如下&#xff1a; select [列名] from 表名 [WHERE 语句] into outfile 目标文件 [其他选项];该语句分为两个部分。前半部分是一个普通的select语句&#xff0c;通过这个select语句来查询…

PHY XGE 自协商AN数据交互过程

在裸机环境下&#xff0c;两个 **支持 10GBASE-T** 的 PHY 芯片通过 Clause 73 协议完成自协商&#xff08;Auto-Negotiation&#xff0c;AN&#xff09;&#xff0c;它们在 **无操作系统控制** 的条件下&#xff0c;完成以下 **完整的点对点数据交互流程**&#xff1a; --- ##…