以下文章來源于OpenTiny ,作者路延剛
你是否曾經在埋頭編碼的時候,別人用一行JavaScript代碼就解決了問題?這就像一個編碼魔術。
TinyEngine 低代碼引擎簡介
低代碼引擎是一種通用的開發框架,通過對低代碼平臺系統常用的功能進行解構,將其劃分為多個功能模塊,并為每個模塊定義了相應的協議和開發范式,使得開發者可以根據自身的業務需求,輕松定制開發出自己的低代碼開發平臺。
TinyEngine 低代碼引擎作為低代碼平臺的底座,提供可視化搭建頁面等基礎能力,既可以通過線上搭配組合使用,也可以通過 cli 創建個人工程進行二次開發,實時定制出自己的低代碼平臺。適用于多場景的低代碼平臺開發,如:資源編排、服務端渲染、模型驅動、移動端、大屏端、頁面編排等。
TinyEngine 官網:https://opentiny.design/tiny-engine
TinyEngine 源碼:https://github.com/opentiny/tiny-engine (歡迎star)
Java 版本開源介紹
自 TinyEngine 開源以來,我們發現越來越多企業和個人開發者開始基于 TinyEngine 搭建自己的低代碼平臺,也有大量用戶對服務端 Java 版本有著強烈的期待。針對這一需求,TinyEngine 團隊果斷將服務端 Java 版本開發列入重要計劃。經過團隊成員的不懈努力,服務端 Java 版本終于問世,希望能為開源生態貢獻新的力量。
本次 TinyEngine 低代碼引擎服務端 Java 版本代碼的開源,讓開發者能夠深入了解 TinyEngine 低代碼引擎的前后端運行機制,更能夠讓更多的小伙伴以更深的層次參與到產品共建,共同探討并改進系統,推動其不斷優化,帶來更高的創新潛力,使得更多的人能夠從中受益。
同時服務端的開源為自由定制和擴展提供了可能,開發者可以參考 TinyEngine 的代碼,根據自身需求對服務端進行改造創新,從而使得產品更具靈活性,能夠滿足各種復雜的業務需求,構建一個強大而健壯的低代碼生態系統。
TinyEngine 服務端 Java 源碼:https://github.com/opentiny/tiny-engine-backend-java(歡迎star)
1、項目概述
tiny-engine-backend-java 是一個基于 springboot、mybatisPlus、mysql 的服務端系統,主要用于管理 TinyEngine 的業務邏輯、數據存儲、操作。該項目簡化開發,提高效率,具有高擴展和高可維護性。
2、技術棧
Spring Boot :為項目提供快速開發和自動配置功能,簡化了傳統 JavaEE 項目開發流程,它提供了內嵌式的 Web 服務器(Tomcat)以及自動化配置功能,減少了大量的配置工作。
MyBatis Plus:在 MyBatis 基礎上封裝的增強工具,簡化了數據庫的操作,如自動生成 CRUD 操作代碼、動態 sql、分頁查詢等,減少了手寫 sql 負擔,增加了開發效率。
MySQL:項目的關系型數據庫管理系統,負責持久化數據,支持復雜的查詢和事務管理。
3、Java版本特性介紹
自動化配置:Spring Boot 自動化配置減少了繁瑣的 xml 配置,使得開發者可以專注于業務邏輯的開發。
高可拓展性:項目采用了松耦合的設計,便于后續功能擴展,例如可以添加更多功能模塊、支持多數據源等。
低耦合:為了降低服務耦合度,在 Node.js 版本的基礎上對數據庫表進行了重構,并對相關邏輯進行優化,降低了開發難度和學習曲線,更能夠從服務端的角度去理解 TinyEngine 設計器的運行原理與設計思想 。
服務減負:去除了區塊構建,改用區塊新方案,不再對 verdaccio 和 unpack 服務依賴,部署更輕松簡便,使用更得心應手。
4、服務端架構
5、數據模型設計
Java 版本重新設計了數據模型,對原有 js 版本的表字段做調整,去除由于 Strapi 的使用建立的冗余關聯表,讓表與表之間的關系更清晰。
數據模型ER表
Java 版本與 Node.js 差異
Java版本 | Node.js版本 | ||
優點 | 缺點 | 優點 | 缺點 |
性能:Java 編譯后的字節碼在 JVM(Java 虛擬機)上運行,性能通常優于 Node.js。 | 啟動時間:由于 Java 需要 JVM 啟動,啟動時間通常比 Node.js 慢。 | 快速開發:Node.js 基于 JavaScript,開發者可以利用瀏覽器的豐富生態系統和工具(如 npm ),實現快速開發和原型制作。 | 性能:Node.js 運行在V8引擎上,性能通常不如 Java。在處理計算密集型任務時,可能會表現不佳。 |
安全性:Java 有內置的安全機制,如字節碼驗證,能夠更好地保護應用程序免受惡意攻擊。 | 復雜的生態系統:雖然 Java 生態系統豐富,但也意味著選擇和集成可能會比較復雜。 | 事件驅動:Node.js 基于事件驅動架構,非常適合 I/O 密集型應用,如實時聊天、數據流處理等。 | 安全性:由于 Node.js 的生態系統相對較新,某些庫和工具可能存在安全漏洞。 |
可擴展性:Java 支持面向對象編程(OOP),具有良好的模塊化和可擴展性,適合大型企業級應用。 | 資源消耗:Java 應用程序通常對系統資源(如內存和 CPU)要求較高。 | 非阻塞I/O :Node.js 使用非阻塞 I/O 模型,使其在處理大量并發連接時表現出色 | 可擴展性:雖然 Node.js 適合 I/O 密集型應用,但在處理復雜業務邏輯和大型企業應用時,可能需要額外的架構設計和優化。 |
豐富的生態系統:Java 有一個龐大的生態系統,包括豐富的框架(如 Spring、Hibernate)和庫,能夠簡化開發過程。 | 不支持原有的區塊方案 | 社區支持:Node.js 擁有一個活躍的開發者社區和豐富的包管理器 npm,能夠快速找到所需的庫和工具。 | 暫不支持區塊新方案,fork 用戶需要自己修改代碼支持 TinyEngine 的區塊新方案。 |
跨平臺:Java 的“寫一次,運行到處”的理念使其能夠在不同的平臺上運行。 | 成本低:由于 Node.js 是基于 JavaScript 的,開發者無需額外學習成本,且可以利用現有的前端開發技能。 | 后期(官方)主要工作重心將轉移至Java版本 |
附:Node.js 版本介紹
2024年年初 OpenTiny 開源了 TinyEngine 的 Node.js 版本服務端,其中包含 tiny-engine-webservice 和 tiny-engine-data-center 兩個微服務,每個服務單元都可以獨立開發、測試和部署。這種架構不僅提高了團隊的協作效率,還使得系統更容易擴展和維護。
Node.js 版本開源介紹詳情可見:https://mp.weixin.qq.com/s/7G1eviib45mMOC1_h762sA?token=645893077&lang=zh_CN
FAQ
1、Java服務端開源之后,如果不想啟動服務端服務器,是否還能沿用原來 mockServer?
答:可以正常使用 mockServer,啟動方式和原先一致,直接在項目里執行pnpm dev即可
2、如果本地啟動了Java后端,那么前端本地工程是否還需要更改配置?如果需要,如何更改配置?
答:需要更改配置,更改流程如下:啟動tinyengine
修改 env 目錄下的 env.development 文件中的 VITE_ORIGIN 變量為本地 tiny-engine-backend-java 項目的地址端口
修改engine.config.js文件中的material值如圖
運行如下腳本啟動
pnpm install # 第一次啟動項目需要 pnpmserve:frontend
啟動成功后瀏覽器會自動打開設計器頁面
部署流程指導可參考官網使用手冊:平臺開發指南>解決方案>Java 服務端部署到服務器 章節(官網使用手冊:https://opentiny.design/tiny-engine#/help-center/course/dev)
未來規劃
1、人工智能:計劃將低代碼平臺與AIGC(人工智能生成內容)技術相結合,為用戶提供更加智能、高效的應用開發體驗。后續我們考慮將低代碼平臺的開發流程與AIGC技術相結合,通過自然語言處理、機器學習和深度學習等技術,實現應用界面的自動生成、功能模塊的智能推薦和代碼的自動化生成等功能。
2、模型驅動:我們將致力于將低代碼平臺與模型驅動能力相結合,為用戶提供更加高效、智能的開發體驗。深入研究各種業務模型,包括數據模型、業務流程模型等,以了解其特性和需求。后續,我們將低代碼平臺的開發流程與模型驅動能力相結合,通過可視化建模工具和自動化技術,實現業務模型的快速構建和部署。通過這一創新性的接入方式,用戶將能夠更加高效地構建和調整業務模型,降低開發難度和成本。
-
JAVA
+關注
關注
20文章
2984瀏覽量
106858 -
開源
+關注
關注
3文章
3587瀏覽量
43472 -
代碼
+關注
關注
30文章
4886瀏覽量
70253
原文標題:TinyEngine正式開源服務端Java版本
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
TCP服務端測試工具
TCP通信時服務端如何接收客戶端的數據?
監控服務器資源利用率的服務端腳本
MQTT中服務端和客戶端
服務端如何控制客戶端之間的信息通訊

Java SpringBoot項目:Node服務端搭建

評論