環球簡訊:9 個 yyds 的 Java 項目,可應對各種私活!
大家好,我是蝸牛。
1. Sa-Token
首先我要介紹的是 Sa-Token,可能是史上功能最全的輕量級 Java 權限認證框架。簡單的使用方式,豐富的特性,強大的功能,你有什么理由拒絕?
(資料圖片)
官方網站:http://sa-token.dev33.cn/
Gitee托管倉庫:https://gitee.com/dromara/sa-token
Github托管倉庫:https://github.com/dromara/Sa-Token
Sa-Token 是一個輕量級 Java 權限認證框架,主要解決:登錄認證、權限認證、Session會話、單點登錄、OAuth2.0、微服務網關鑒權等一系列權限相關問題。Sa-Token 的 API 設計非常簡單,有多簡單呢?以登錄認證為例,你只需要:
// 在登錄時寫入當前會話的賬號idStpUtil.login(10001);// 然后在需要校驗登錄處調用以下方法:// 如果當前會話未登錄,這句代碼會拋出 `NotLoginException` 異常StpUtil.checkLogin();
復制
至此,我們已經借助 Sa-Token 完成登錄認證!此時的你小腦袋可能飄滿了問號,就這么簡單?自定義 Realm 呢?全局過濾器呢?我不用寫各種配置文件嗎?
沒錯,在 Sa-Token 中,登錄認證就是如此簡單,不需要任何的復雜前置工作,只需這一行簡單的API調用,就可以完成會話登錄認證!
當你受夠 Shiro、SpringSecurity 等框架的三拜九叩之后,你就會明白,相對于這些傳統老牌框架,Sa-Token 的 API 設計是多么的簡單、優雅!
權限認證示例(只有具備 user:add 權限的會話才可以進入請求
@SaCheckPermission("user:add")@RequestMapping("/user/insert")public String insert(SysUser user) {// ...return "用戶增加";}
復制
將某個賬號踢下線(待到對方再次訪問系統時會拋出 NotLoginException 異常)
// 使賬號id為 10001 的會話強制注銷登錄StpUtil.logoutByLoginId(10001);
復制
在 Sa-Token 中,絕大多數功能都可以 一行代碼 完成:
StpUtil.login(10001); // 標記當前會話登錄的賬號idStpUtil.getLoginId(); // 獲取當前會話登錄的賬號idStpUtil.isLogin(); // 獲取當前會話是否已經登錄, 返回true或falseStpUtil.logout(); // 當前會話注銷登錄StpUtil.logoutByLoginId(10001); // 讓賬號為10001的會話注銷登錄(踢人下線)StpUtil.hasRole("super-admin"); // 查詢當前賬號是否含有指定角色標識, 返回true或falseStpUtil.hasPermission("user:add"); // 查詢當前賬號是否含有指定權限, 返回true或falseStpUtil.getSession(); // 獲取當前賬號id的SessionStpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的SessionStpUtil.getTokenValueByLoginId(10001); // 獲取賬號id為10001的token令牌值StpUtil.login(10001, "PC"); // 指定設備標識登錄,常用于“同端互斥登錄”StpUtil.logoutByLoginId(10001, "PC"); // 指定設備標識進行強制注銷 (不同端不受影響)StpUtil.openSafe(120); // 在當前會話開啟二級認證,有效期為120秒StpUtil.checkSafe(); // 校驗當前會話是否處于二級認證有效期內,校驗失敗會拋出異常StpUtil.switchTo(10044); // 將當前會話身份臨時切換為其它賬號
復制
即使不運行測試,相信您也能意會到絕大多數 API 的用法。想要了解更多請參考:https://gitee.com/dromara/sa-token。
2. Forest
一款極大程度解放你的 HTTP 接入工作的強大 HTTP 客戶端框架。HTTP 協議很復雜嗎?那是因為你還沒有使用過 Forest,雖然業內有很多其他優秀的HTTP 客戶端,但是你錯過了 Forest,將會錯過一大片優雅美麗的森林。
官方網站:http://forest.dtflyx.com
Gitee托管倉庫:https://gitee.com/dromara/forest
Github托管倉庫:https://github.com/dromara/forest
Forest 是一個開源的 Java HTTP 客戶端框架,用來訪問第三方服務 RESTful 接口。
它能夠將 HTTP 的請求參數綁定到 Java 接口上,之后調用 Java 接口就等于在發送 HTTP 請求。一切面向于接口。
很多公司需要在 Java 后臺調用許多第三方 HTTP 接口,比如微信支付、友盟等等第三方平臺。
公司內部還有很多服務是用世界最好語言寫的,接口自然也只能通過 HTTP 接口來調用。于是日積月累下來,在 Java 代碼中就有許許多多各式各樣的 HTTP 調用接口,而且調用方式也不統一,有 HttpClient 寫的、有 OkHttp 寫的、有自己包裝的,光公司內部不同人包裝的 HTTP 工具類就有兩三種。
而且 url 基本寫死在代碼中,很難維護,不同接口又有不同的參數傳輸方式,有 GET 、有 POST,有 JSON 傳輸的、有 XML 傳輸的。當有一個接口需要修改,完了,光找到代碼在什么地方就要花半天時間。
而 Forest 能幫助我很好地將 HTTP 代碼和業務代碼解耦開來,請求調用者不必關心 HTTP 相關的細節。
自動拼接 HTTP 的各種參數
包括 URL、Header、Body 等等參數都能依靠 Java 注解來聲明。這里就舉一個高德地圖的栗子,來看看 Forest 是如何優雅的聲明 HTTP 請求接口的:
/** * 高德地圖服務客戶端接口 */@BaseRequest(baseURL = "http://ditu.amap.com")public interface Amap {/** * 根據經緯度獲取詳細地址 * @param longitude 經度 * @param latitude 緯度 * @return 詳細地址信息 */@Get("/service/regeo") Map getLocation(@Query("longitude") String longitude, @Query("latitude") String latitude);}......Amap amap = Forest.client(Amap.class);// 發送請求查詢經緯度Map locationInfo = amap.getLocation("32.1242832", "56.3290434");
復制
自動 JSON 和 XML 轉換
其實,我們處理 HTTP 的工作時,除了浪費在組裝各種請求參數外,大部分時間都花了在序列化和反序列化各種格式的數據上,如 JSON 和 XML。
以前用 HttpClient,這些重復的機械性工作都要自己來搞,很是麻煩。
用 Forest 就方便多了,比如要 POST 一個 JSON 對象,直接掛個 @JSONBody 就好了,就是這么清爽。
// 直接將 MyUserInfo 轉換成 JSON// 將服務端響應返回的 JSON 數據轉換成 Result 類對象@Post("http://localhost:8080/user")Result createUser(@JSONBody MyUserInfo user);
復制
和 Retrofit 以及 Feign 的比較
之前也用過這兩款開源框架,都很強大,但各有優缺點。
Retrofit 的主要的問題時和 OkHttp 綁的太死,有些功能被 OkHttp 限制住了,比如我想處理 Get 請求傳輸 Body 數據這種非標準的 HTTP 請求就很難辦到,而 Forest 可以隨意切換 OkHttp 和 HttpClient 作為后端,需要用哪個時用哪個。
Retrofit 注解的豐富性也不如 Forest,比如要實現 HTTP 網絡代理就要自己去寫代碼,而 Forest 提供了 @HTTPProxy 注解,設置一下就完事了。
如果要擴展自定義注解都是基于 OkHttp 的攔截器,不是特別方便,而 Forest 攔截器要比 OkHttp 的方便很多,提供 onInvoke, beforeExecute, onSccuess, onError 等回調方法,等于把一個請求的生老病死都涵蓋了。
而 Feign 的問題則是和 Spring 綁的太緊,很多功能需要依賴 Spring 去做,太加了 Spring 相關包又太重了。
Forest 的核心包基本涵蓋了所有 HTTP 所需功能和注解,不依賴 Spring,要輕量許多,但又不失方便性。
想要了解更多請參考:https://gitee.com/dromara/forest。
3. LiteFlow
一款超輕量,快速,穩定,可編排的組件式流程引擎/規則引擎。
解耦復雜系統的神器!如果你正在為設計一個復雜系統感到頭痛,那么 LiteFlow 是你不二的選擇,超低的學習成本,強大的編排功能,讓你的系統變得更優雅!
官方網站:https://yomahub.com/liteflow
Gitee托管倉庫:https://gitee.com/dromara/liteFlow
Github托管倉庫:https://github.com/dromara/liteflow
Liteflow 為解耦復雜邏輯而生,如果你要對復雜業務邏輯進行新寫或者重構,用 liteflow 最合適不過。它是一個輕量,快速的組件式流程引擎框架,組件編排,幫助解耦業務代碼,讓每一個業務片段都是一個組件。
使用 Liteflow,你需要去把復雜的業務邏輯按代碼片段拆分成一個個小組件,并定義一個規則流程配置。這樣,所有的組件,就能按照你的規則配置去進行復雜的流轉。同時 Liteflow 支持規則文件的熱加載,即時完成修改生效。并提供多種持久化規則的方式的擴展。
使用 LiteFLow,三大核心概念是組件,規則和上下文。
你需要這么像這樣去定義你的組件:
//這里普通組件@LiteflowComponent(id = "a", name = "組件A描述")public class ACmp extends NodeComponent {@Overridepublic void process() {//do your business }}//這是條件組件@LiteflowComponent(id = "b", name = "組件B描述")public class BCondCmp extends NodeCondComponent {@Overridepublic String processCond() {//do your businessreturn "e"; }}
復制
然后去定義你的規則,LiteFlow支持 XML,yml,JSON 三種格式。這里以 XML 形式為例:
復制
復制
這樣你的系統就會按照規則文件定義的方式,去執行你的業務組件。是不是很簡單?
那規則文件定義在哪呢,LiteFlow 并不限定你的規則文件來源,可以是本地文件,可以是注冊中心,可以是任何數據庫。LiteFlow 提供了非常自由的接口供你擴展,你想存儲在哪里都行。改變規則文件,即可實時刷新你的規則流程!如果你想做一個靈活度高,伸縮性強的系統,LiteFlow 是不是非常適合呢?
LiteFlow 為每一個請求都去開辟申請了一個 Slot,你可以理解為上下文,所有的組件共享這個 Slot。你可以在任意組件里通過對 Slot 的訪問來獲得任意數據,也可以存放任意數據。你也可以擴展 Slot,自定義這個 Slot 的屬性。
@LiteflowComponent(id = "a", name = "組件A描述")public class ACmp extends NodeComponent {@Overridepublic void process() { Slot slot = this.getSlot();//通過對slot的getData,setData,或者存取你自己擴展的slot屬性 }}
復制
正因為有 Slot 的存在,才抹平了組件與組件之間的差異性,使得每一個業務組件之間無強依賴。這樣的設計,就可以讓你的系統高度自由化,組件復用,組件調換順序得以方便的實現!
LiteFlow 還支持 2 種腳本語言的接入,目前支持 Groovy 和 QLExpress 兩種腳本語言。你可以在 xml/yml/json 定義腳本,以下以 XML 為例:
100){ return "a"; }else{ return "b"; } ]]>
復制
那么在什么地方定義是哪種語言的腳本呢?LiteFlow 的腳本功能是一個 SPI 機制的實現。你依賴了哪個腳本包,就以哪種腳本的方式執行。
有了腳本語言的支持,連業務代碼是不是都可以熱部署了?香不香?
LiteFlow 的功能遠不止這些,想了解更多,請到官網文檔去查看了解。相信LiteFlow會讓你感到優雅和驚艷。
想要了解更多請參考:https://yomahub.com/liteflow。
4. JPom
一款簡而輕的低侵入式在線構建、自動部署、日常運維、項目監控軟件。中小公司團隊 DevOps 的福音!輕量且強大,你不試試?
官方網站:https://jpom.io/
Gitee托管倉庫:https://gitee.com/dromara/Jpom
Github托管倉庫:https://github.com/dromara/Jpom
Jpom 是一款簡而輕的低侵入式在線構建、自動部署、日常運維、項目監控軟件。
在中小公司或者團隊中傳統項目部署、運維流程通用的方法是登錄服務器上傳新的項目包,執行相應命令管理,如果管理多個項目則重復操作上述步驟。
市面上有很許多 DevOps 軟件但是這些軟件基本都會是難上手,重依賴。Jpom 則是針對中小公司或者團隊設計的一款低侵入,輕依賴的一款輕量級的 DevOps 軟件。
項目主要功能及特點:
創建、修改、刪除項目、Jar 包管理;實時查看控制臺日志、備份日志、刪除日志、導出日志;在線構建項目發布項目一鍵搞定;多節點管理、多節點自動分發;在線 SSH 終端,并且有終端日志和禁用命令;實時監控項目狀態異常自動報警;CPU、內存監控、導出堆棧信息、查看項目進程端口、服務器狀態監控;多用戶管理,用戶項目權限獨立(上傳、刪除權限可控制),完善的操作日志;系統路徑白名單模式,杜絕用戶誤操作系統文件;在線管理 Nginx 配置文件、SSL 證書文件。一鍵安裝(Linux)(推薦)
插件端
如果服務端也需要被管理,在服務端上也需要安裝插件端。安裝的路徑位于執行命令目錄(數據、日志存放目錄默認位于安裝路徑,如需要修改參考配置文件:extConfig.yml )。
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent
復制
備用地址yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Agent
復制
支持自動安裝 JDK 環境yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent jdk
復制
啟動成功后,插件端的端口為 2123。
服務端
安裝的路徑位于執行命令目錄(數據、日志存放目錄默認位于安裝路徑,如需要修改參考配置文件:extConfig.yml )。
如果需要修改數據、日志存儲路徑請參照 extConfig.yml 文件中 jpom.path 配置屬性。
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server
復制
備用地址yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Server
復制
支持自動安裝 JDK 環境。yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk
復制
支持自動安裝 JDK 和 Maven 環境。yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk+mvn
復制
啟動成功后,服務端的端口為 2122 訪問管理頁面。例如 http://localhost:2122/
特別提醒:一鍵安裝的時候注意執行命令不可在同一目錄下,即 Server 端和 Agent 端不可安裝在同一目錄下。
如無法訪問,檢查下是否開啟了防火墻 systemctl status firewalld,如狀態顯示為綠色 Active: active (running) 可臨時關閉防火墻 systemctl stop firewalld,然后重啟防火墻。firewall-cmd --reload(建議僅測試環境下使用,生產環境下慎用) 如關閉防火墻后仍無法訪問,并且使用的是云服務器,還需要到云服務器管理后臺中關閉防火墻。
想要了解更多請參考:https://gitee.com/dromara/Jpom。
5. Cubic
首先我要介紹的是Cubic,一站式問題定位平臺!線程棧監控、線程池監控、動態arthas命令集、依賴分析等等等,強不強大,香不香?
官方網站:https://cubic.jiagoujishu.com/
Gitee托管倉庫:https://gitee.com/dromara/cubic
Github托管倉庫:https://github.com/dromara/cubic
5.1 介紹
一站式問題定位平臺,還在為線上問題而煩惱嗎?
線程棧監控、線程池監控、動態 arthas 命令集、依賴分析等等等,致力于應用級監控,幫助開發人員快速定位問題。
5.2 有什么特性
兼容性:整體監控不管你是 IDC、ECS、Docker 部署,都可完美兼容;易用:無需任何配置,開箱即用,基于 agent 無侵入接入,升級應用端無感知;強大:支持對應用的基礎監控、堆棧監控、線程池監控等等;高擴展:提供良好的擴展接口,給你自主選擇。使用后能帶來怎樣工作效率上的提升。
5.3 功能展示
實例中心(展示當前實例信息)
基礎信息(點擊實例->展示當前實例的基礎信息)
依賴監控(點擊實例-〉展示當前實例的依賴包信息)
Arthas 命令操作
線程池監控
實時線程棧
歷史線程棧
想要了解更多請參考:https://gitee.com/dromara/cubic。
6. Sureness
丟掉 Shiro 吧,也別再用 Spring Security了。簡單易用多語言多框架支持,基于 RESTAPI 的強大國產鑒權框架,效率神器!
官方網站:https://usthe.com/sureness
Gitee托管倉庫:https://gitee.com/dromara/sureness
Github托管倉庫:https://github.com/dromara/sureness
6.1 介紹
在主流的前后端分離架構中,如何通過有效快速的認證鑒權來保護后端提供的 REST API 變得尤為重要。
對現存框架,不原生支持 RESTful 的 Apache Shiro,還是深度綁定 Spring 的 Spring Security,或多或少都不是我們的理想選型。
于是乎 Sureness 誕生了,我們希望能解決這些問題。提供一個面向 REST API、無框架依賴、可以動態修改權限、多認證策略、更快速度、易用易擴展的認證鑒權框架。
6.2 特性
Sureness 是我們在深度使用 Apache Shiro 之后,吸取其優點全新設計開發的一個認證鑒權框架。
面向 REST API 的認證鑒權,基于 RBAC(用戶-角色-資源)主要關注于對 API 的安全保護。無特定 Web 框架依賴,開箱即用(已有 SpringBoot、Quarkus、Javalin、Ktor、Micronaut、Jfinal、Solon 等集成樣例);支持動態修改權限配置(動態修改配置每個 API 的訪問權限) 支持 Websocket 、主流 HTTP 容器 Servlet、JAX-RS、Spring Reactive;支持多種認證策略 JWT、Basic Auth、Digest Auth ... 可擴展自定義認證方式;基于改進的字典匹配樹擁有的高性能;良好的擴展接口、樣例和文檔,幫助急速理解、擴展與使用 Sureness 的低配置;易擴展,不耦合其他框架,希望能對系統多場景快速安全的保護。6.3 對比
benchmark
基準測試顯示 Sureness 對比無權限框架應用損耗 0.026ms 性能,Shiro 損耗0.088ms、Spring Security 損耗 0.116ms。
性能差距會隨著api匹配鏈的增加而進一步拉大。
原生支持樣例:
[x] Sureness 集成 Spring Boot 樣例(配置文件方案)sample-bootstrap[x] Sureness 集成 Spring Boot 樣例(數據庫方案)sample-tom[x] Sureness 集成 Quarkus 樣例 sample-quarkus[x] Sureness 集成 Javalin 樣例 sample-javalin[x] Sureness 集成 Ktor 樣例 sample-ktor[x] Sureness 集成 Spring Webflux 樣例 sample-spring-webflux[x] Sureness 集成 Micronau t樣例 sample-micronaut[x] Sureness 集成 MicroProfile 樣例 sample-microProfile[x] Sureness 集成 Jfinal 樣例 sample-jfinal[x] Sureness 集成 Solon 樣例 sample-solon[x] Sureness 集成 Spring Gateway 樣例 sample-spring-gateway[x] Sureness 集成 Zuul 樣例 sample-zuul[x] Sureness 集成 Session 樣例 sureness-session[x] Sureness 集成分布式緩存 Session 樣例 sureness-redis-session[x] More samples todo想要了解更多請參考:https://gitee.com/dromara/sureness。
7. TLog
十分鐘即可接入,一款神器的日志框架。支持眾多的框架和主流 RPC,讓你的日志馬上升級,變得可追溯!
官方網站:http://yomahub.com/tlog
Gitee托管倉庫:https://gitee.com/dromara/TLog
Github托管倉庫:https://github.com/dromara/TLog
7.1 介紹
隨著微服務盛行,很多公司都把系統按照業務邊界拆成了很多微服務。在排錯查日志的時候,因為業務鏈路貫穿著很多微服務節點,導致定位某個請求的日志以及上下游業務的日志會變得有些困難。
這時候很多童鞋會開始考慮上 SkyWalking、Pinpoint 等分布式追蹤系統來解決。基于 OpenTracing 規范,而且通常都是無侵入性的,并且有相對友好的管理界面來進行鏈路 Span 的查詢。
但是搭建分布式追蹤系統,熟悉以及推廣到全公司的系統需要一定的時間周期。而且當中涉及到鏈路 span節點的存儲成本問題,全量采集還是部分采集?
如果全量采集,就以 SkyWalking 的存儲來舉例,ES 集群搭建至少需要 5 個節點。這就需要增加服務器成本。況且如果微服務節點多的話,一天下來產生幾十 G 上百 G 的數據其實非常正常。如果想保存時間長點的話,也需要增加服務器磁盤的成本。
當然分布式追蹤系統是一個最終的解決方案,如果您的公司已經上了分布式追蹤系統,那 TLog 并不適用。
TLog 提供了一種最簡單的方式來解決日志追蹤問題。它不收集日志,也不需要另外的存儲空間,它只是自動的對你的日志進行打標簽。自動生成 TraceId 貫穿你微服務的一整條鏈路。并且提供上下游節點信息。適合中小型企業以及想快速解決日志追蹤問題的公司項目使用。
為此 TLog 適配了三大日志框架,支持自動檢測適配。支持 Dubbo、Dubbox、Spring Cloud 三大RPC框架。更重要的是,你的項目接入 TLog,可能連十分鐘就不需要 :)
7.2 項目特性
目前 TLog 的支持的特性如下:
通過對日志打標簽完成輕量級微服務日志追蹤;提供三種接入方式:javaagent 完全無侵入接入,字節碼一行代碼接入,基于配置文件的接入;對業務代碼無侵入式設計。使用簡單,10 分鐘即可接入;支持常見的 log4j、log4j2、logback 三大日志框架,并提供自動檢測,完成適配;支持 Dubbo、Dubbox、Spring Cloud 三大 RPC 框架;支持 Spring Cloud Gateway 和 Soul 網關;適配 HttpClient 和 Okhttp 的 HTTP 調用標簽傳遞;支持三種任務框架,JDK 的 TimerTask、Quartz、XXL-JOB;支持日志標簽的自定義模板的配置,提供多個系統級埋點標簽的選擇;支持異步線程的追蹤,包括線程池,多級異步線程等場景;幾乎無性能損耗,快速穩定。經過壓測,損耗在0.01%。7.3 接入方式
使用后你的每行日志會變成以下格式:
想要了解更多請參考:https://gitee.com/dromara/TLog。
8. ImageCombiner
無需 P 圖,用 Java 也能合成很好看的圖,簡單的使用方式,服務端批量合圖利器!
官方網站:http://dromara.gitee.io/image-combiner
Gitee托管倉庫:https://gitee.com/dromara/image-combiner
8.1 介紹
ImageCombiner 是一個專門用于 Java 服務端圖片合成的工具。沒有很復雜的功能,追求簡單實用,從實際業務場景出發,提供簡單的接口,幾行代碼即可實現圖片拼合(當然用于合成水印也可以)。特別適合圖片營銷、產品分享等需要實時生成圖片場景。
8.2 特性
素材上支持圖片、文本、矩形三種,支持元素的定位、縮放、旋轉、圓角、透明度、顏色、字體、字號、刪除線、居中繪制、文本自動換行等特性,足夠覆蓋圖片合成的日常需求。項目不依賴任何框架,完全基于 JDK 本身編寫,沒有各種花里胡哨的東西,性能還是相當不錯的。
8.3 效率提升
通過對 Graphics2D 的封裝和元素模型的提煉,屏蔽了圖像處理細節,把復雜的編碼簡化為設置各個元素的位置、屬性即可。作者日常工作中,一個約含十余個元素的復雜圖片合成,開發加調試(主要是對比設計稿還原度)20分鐘即可搞定,極大的釋放了生產力。
8.4 效果預覽
最簡單的例子:
public void simpleDemo() throws Exception {//合成器 ImageCombiner combiner = new ImageCombiner("http://xxx.com/image/bg.jpg", OutputFormat.JPG);//加圖片元素 combiner.addImageElement("http://xxx.com/image/product.png", 0, 300) .setAlpha(.8 f) //透明度(0.0~1.0) .setRotate(45) //旋轉(0~360) .setBlur(20); //高斯模糊(1~100);//加文本元素 combiner.addTextElement("周末大放送", 0, 150, 1400) .setCenter(true) //居中繪制(會忽略x坐標,改為自動計算) .setColor(Color.Red) //顏色//執行圖片合并 combiner.combine();//可以獲取流(并上傳oss等) InputStream is = combiner.getCombinedImageStream();//也可以保存到本地 combiner.save("d://image.jpg");
復制
想要了解更多請參考:https://gitee.com/dromara/image-combiner。
9. MaxKey
MaxKey 單點登錄認證系統是業界領先的企業級 IAM 身份管理和認證框架,產品化程度很高,多家知名公司的選擇!
官方網站:https://www.maxkey.top/
Gitee托管倉庫:https://gitee.com/dromara/MaxKey
Github托管倉庫:https://github.com/dromara/MaxKey
9.1 介紹
MaxKey 單點登錄認證系統(Single Sign On System)。諧音馬克思的鑰匙,寓意是最大鑰匙。是業界領先的企業級 IAM 身份管理和認證產品。支持 OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM 等標準協議。提供簡單、標準、安全和開放的用戶身份管理(IDM)、身份認證(AM)、單點登錄(SSO)、RBAC 權限管理和資源管理等。
9.2 特性
標準認證協議
登錄支持
界面預覽
想要了解更多請參考:https://gitee.com/dromara/MaxKey。
最后
其實Dromara開源社區還有最知名的項目(也是star最多的項目)——Hutool,那我為什么不寫呢。我想說,這框架普及率太高了,幾乎是可以取代 Apache Common 包、Guava包的存在,程序員應該每個人都用下。
以上推薦的開源項目,也是 Dromara Java 社區里的精品項目,很多都已經是 GVP 項目了,用好這些框架/工具,真的能讓工作效率大大提升。
我是蝸牛,大廠程序員,專注技術原創和個人成長,正在互聯網上摸爬滾打。下期見!
推薦
-
-
-
【環球播資訊】梅安森(300275)2月22日主力資金凈賣出385.03萬元
截至2023年2月22日收盤,梅安森(300275)報收于17 47元,下跌1 24%,換手率2 06%,成交量3 03萬手,成交額5287 26萬元。
來源: -
-
-
-
-
-
-
-
-
-
天天頭條:金蝶國際預計2022年虧損3.6億至4.2億 港股跌0.9%
金蝶國際預計2022年虧損3 6億至4 2億港股跌0 9%---中國經濟網北京2月22日訊金蝶國際(00268 HK)今...
來源: -
-
-
-
天天簡訊:董承非最新發聲:權益倉位升至六七成,近10%倉位持有氣囊和雪球,未來是科技的時代,不要抱有幻想
財聯社2月22日訊(記者沈述紅)繼一周前因“千萬資產”論調引發輿論風波后,睿郡資產合伙人董承非在2
來源: -
-
-
-
-
-
-
環球快資訊丨諾基亞與新加坡電信公司Antina達成為期10年的5G協議
據財聯社,諾基亞周三贏得了與AntinaPte Ltd 現有的全國5G網絡協議的10年延期,AntinaPte Ltd 是由...
來源: -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
證券業正入戲ChatGPT,廣發試水方案曝光,多家券商曬體驗,哪些場景可先行?哪些風險點要規避?
財聯社2月22日訊(記者黃靖斯)ChatGPT快速引燃證券行業。2月22日,廣發證券官宣將正式接入
來源: -
【環球播資訊】梅安森(300275)2月22日主力資金凈賣出385.03萬元
截至2023年2月22日收盤,梅安森(300275)報收于17 47元,下跌1 24%,換手率2 06%,成交量3 03萬手,成交額5287 26萬元。
來源: -
-
-
-
-
-
-
財富更多》
-
【跨國企業在中國】“美麗經濟”持續增長,歐萊雅如何在中國“美美與共”?
【跨國企業在中國】“美麗經濟”持續增...
-
【跨國企業在中國】跨國消費巨頭談中國市場:前景向好、充滿信心
【跨國企業在中國】跨國消費巨頭談中國...
-
中國衛星漲停 機構凈賣出1.03億元
中國衛星漲停機構凈賣出1 03億元---中...
-
天天頭條:金蝶國際預計2022年虧損3.6億至4.2億 港股跌0.9%
金蝶國際預計2022年虧損3 6億至4 2億...
-
實時焦點:農行回應對雄安購房者推出連心貸,連心貸已被注冊為商標
農行回應對雄安購房者推出連心貸,連心...
動態更多》
熱點
- realme10系列正式宣布 采用雙曲面屏正面頂部居中挖孔
- 五菱全新微型電動車內飾官圖發布 座椅采用星際形打孔工藝
- 努比亞Z40星空典藏版正式開售 采用微米級油畫筆觸紋理技術
- iQOO11系列正式官宣 首批搭載驍龍8Gen2機型之一
- 海信34英寸帶魚屏顯示器發布 支持165Hz刷新率
- OPPO明年將商用240W超級閃充 新一代電芯支持更高倍率充電
- 第一款Android手機渲染圖曝光 橫向滑蓋設計和全尺寸鍵盤
- 吉利首款純電皮卡11月9日上市 車輛續航里程超過610公里
- 努比亞Z40SPro星空典藏版正式公布 堪稱窄邊框天花板
- vivo無線運動耳機2今日正式上市 首銷只要119元
- 北京:新冠疫情局部零星散發 未監測到新冠引起的聚集性疫情
- 魅族18后置攝像頭是多少像素?魅族18怎么調相機參數?
- 抖音皮膚怎么設置在哪里?抖音皮膚怎么設置成白色?
- iqoo7怎么開啟圖標自動補位?iqoo7的電池容量是多少?
- 世界今頭條!同程旅行啟動“千村計劃” 將帶動千億鄉村旅游產值
- 理光RiNet 悅連+獲年度卓越智能商用文印管理系統
- realmegt怎么開啟GT模式?realmegt怎么看電池健康度?
- 北京一區去年待售面積增長26%,38個樓盤承諾“30天無理由退定金”
- 【熱聞】高盛:予信和置業(00083)“沽售”評級 目標價降至10.6港元
- 抖音如何設置自動播放下一個?抖音播放自動停止怎么回事?
- 【走進區域看發展】產值超千億 涪陵新材料產業跑出發展新賽道
- vivox60pro怎么設置鎖屏圖案?vivox60pro怎么看電池容量?
- 以精細化管理歡迎“小修小補”回歸
- realmegt支持杜比全景聲嗎?realmegt的屏幕怎么樣?
- oppo手機怎樣設置兒童模式?oppo手機怎么格式化恢復出廠設置?
- 富國銀行:美國監管機構就未經授權通訊記錄的留存合規問題進行調查
- 小米手機運動數據權限在哪里打開?小米手機運動跟拍是什么意思?
- 紅米k40pro怎么應用分身?紅米k40pro防水等級是多少?
- realmegt怎么開啟杜比音效?realmegt怎么看電池健康度?
- oppo手機簡易模式怎么設置?oppo手機的控制中心在哪?
- 三星手機怎么設置來電鈴聲?三星手機鈴聲在哪個文件夾?
- 紅米k40微信視頻美顏怎么設置?紅米k40pro吃雞能開90幀嗎?
- 小米全面屏模式怎么設置?小米全面屏底部橫線怎么設置?
- 國際金價或無法堅守1828美元
- 曾被指不輸老公丘棟榮,中銀白冰洋突然“清倉式”離任,轉戰另一公募傳言正盛
- oppo手機閃退怎么解決呢?oppo手機忘記密碼了怎么解鎖?
- 天天資訊:Python 初版發布 | 歷史上的今天
- 小米手機怎么設置微信信息不顯示內容?小米手機怎么打開開發者選項?
- 榮耀手機屏幕上的小圓點怎么取消?榮耀手機屏幕不靈敏怎么校正?
- iphone12左邊怎么顯示運營商?iphone12怎么顯示電量百分比?
- 【世界速看料】威馬汽車采購公司欠款634萬成老賴
- 視點!香港恒生指數收漲0.81% 恒生科技指數漲1.27%
- vivo手機如何設置自定義圖標?vivo手機忘記密碼怎樣開鎖?
- 實時焦點:KEKKAI獲得5000萬日元Pre-seed輪融資
- 小米手環5音樂播放功能怎么用?小米手環5微信通知怎么設置?
- 世界速訊:TipLink獲得600萬美元種子輪融資
- 天天觀察:深交所發布關于深市全面實行股票發行注冊制改革業務仿真測試的通知
- 全球熱資訊!探訪廈門預制菜產業基地:市場大、底氣足
- 今日熱門!高質量發展看廣東|“機器人生產機器人” 自動化推動中國“智”造
- 每日熱點:Previa Medical獲得210萬歐元種子輪融資
- 天天熱資訊!中國水利部:全面開展防洪關鍵部位風險隱患排查整治
- 小愛同學怎么連接手機?小愛同學怎么連接電腦當音響?
- 觀天下!遼寧通報2022年下半年保險消費投訴 大地財險2項居首
- vivos9微信手勢密碼在哪里設置?vivos9微信支付振動怎么關?
- 環球速讀:福特將迎業務分拆一周年,CEO:對成本和質量感到沮喪
- vivos9微信深色模式怎么設置?vivos9怎么刷機清除密碼?
- 小米手機步數怎么顯示在桌面?小米手機怎么打開開發者選項?
- 【當前獨家】大客戶預期市場需求疲弱!全球電動工具龍頭一度跌超7%
- oppo手機相冊怎么設置密碼?oppo手機錄屏功能在哪里?
- vivo手機紅包提醒在哪里開啟?vivo手機的投屏功能在哪里?
- 世界快播:陽了應該怎么辦-陽性感染者如何用藥 02月22日14時遼寧鞍山疫情數據
- 微信標簽管理在哪里設置?微信標簽怎么合并到一個呢?
- 微信聊天視頻美顏功能在哪里開始?微信聊天視頻被清理了怎么恢復?
- 微博怎么批量刪除自己發的微博?微博昵稱不可用什么意思?
- 蘋果語音備忘錄怎么導入剪映?蘋果語音備忘錄刪除了可以恢復嗎?
- 微信運動步數怎么放到桌面?微信運動步數會延遲嗎?
- 紅米k40pro怎么開視頻通話美顏?紅米k40pro吃雞能開90幀嗎?
- 蘋果進入微信怎么設置面容ID?蘋果手機微信打不開了怎么回事?
- 小米10s支持微信人臉支付嗎?小米10s微信鎖屏密碼怎么設置?
- vivo手機隱藏空間怎么打開?vivo手機隱藏空間忘記密碼怎么辦?
- oppo高清語音通話在哪里關閉?oppo的控制中心在哪里找?
- 為什么說TPS不可復制?
- 小米11超級夜景視頻怎么開?小米11的nfc位置在哪里?
- 小米手機打字聲音怎么關閉?小米手機打字鍵盤不出來怎么辦?
- 世界微動態丨張雪峰發文致歉:沒搞清具體情況
- 每日觀察!香港政府調整首次置業印花稅 港股地產股午后拉升
- 微信朋友圈分組怎么刪除標簽?微信朋友圈一條橫線是什么意思?
- 資訊推薦:每天50次 微軟限制使用聊天機器人
- 世界今日報丨京東方等投資成立硅新科技發展中心 出資額1.75億
- 微信怎么看朋友圈是否被屏蔽?微信朋友圈頭像下面的字怎么弄?
- 速看:硅業分會:各企業硅料訂單簽訂結束 本周硅料均價持穩運行
- 蘋果11怎么自定義鬧鐘鈴聲?蘋果11鈴聲靜音了怎么調回來?
- 王一博起訴茶館及傳媒公司維權 上海一傳媒公司兩度被王一博起訴
- 蘋果11懸浮球怎么更改形狀?iPhone11懸浮球怎么變成黑色了?
- 快手怎么設置不讓看粉絲信息?快手的青少年模式怎么設置?
- 小米極簡模式怎么設置桌面?小米極簡模式一鍵呼叫怎么關閉?
- vivo手機怎么換自定義鎖屏?vivo手機的密碼保險箱在哪里?
- 小米手機輸入法怎么設置?小米手機丟了怎么定位找回?
- oppofindx3pro有沒無線充電?OPPOfindx3pro的使用說明書在哪里?
- 酷狗懸浮窗口怎么開啟?酷狗音樂怎么取消自動續費?
- 【世界獨家】iphone上的神奇功能你知道嗎?
- 國家郵政局:深化農村寄遞物流體系建設 提升農村地區郵政服務水平
- 全球今日報丨餓了么星選公司僅剩1人參保 餓了么星選已停運
- 【聚看點】國家郵政局:進一步推動解決快遞員在住房、子女教育等方面實際困難
- 微頭條丨海泉基金公司成被執行人 胡海泉此前已退股
- 前沿熱點:技嘉煉金術士系列arca380、a310顯卡已上架
- 我國持續推進質量認證體系建設 累計頒發有效認證證書334.2萬張
- 全球焦點!香港將研究建立人工智能超算中心
- 天天快播:亞洲需求前景限制或支撐金價,關注美聯儲FOMC會議記要
- 頂不住罷工壓力 英國首相蘇納克據稱將給公共部門加薪5%
- 今日訊!今日pd900鈀金回收價格查詢(2023年02月22日)
- 世界快資訊丨奮進的春天|萬象“耕”新 一年農事貴爭時
- 每日關注!拜訪滬上企業及上海市許昌商會
- 國家郵政局:春運期間全網累計攬收郵件快件103.67億件,同比增長6.14%
- 全球今日報丨巨能股份過會:今年IPO過關第36家 開源證券過首單
- 66印攜手WPS,聯合推出手機移動端云打印服務解決方案
- 觀焦點:Puzzle獲得1500萬美元A輪融資
- 全球即時看!今日申購:四川黃金、播恩集團
- 世界視點!東昂科技終止創業板IPO 保薦機構為招商證券
- 焦點報道:蘋果 iPhone 成 Z 世代年輕人首選設備 推動代際轉變
- 世界觀點:趣AI | 太強!人工智能已經可以“駕駛”F-16戰斗機
- 《財米油鹽》|“房貸還到100歲?”別誤會!
- 環球關注:Remedy Drinks獲得B輪融資,KinGroup、L Catterton聯合領投
- 加密文件夾隱藏后如何重新顯示出來?
- 京東“對攻”拼多多百億補貼 有投行認為投資者反應過度
- 世界微資訊!u盤加密最簡單的方法
- 全球新動態:慧觀生物完成種子輪融資
- 天天速讀:產業觀察 | “臨食工”撐起的百億市場如何助推反食品浪費
- 侵權趙麗穎黑粉道歉
- 外資公募跑步入場 加大力度布局中國資產
- 全球簡訊:微軟放寬新必應人工智能限制 將把每天聊天總量上限提高到 100 次
- 多家紙企發布3月漲價函 漲幅1000元/噸
- 福瑞電氣完成數千萬的A輪投資
- 環球快資訊:第三大經濟體制造業持續萎靡 日本工廠產出和新訂單連續8月下降
- 天天熱門:四川航空官網訂機票電話_四川航空官網訂機票
- 全球快看:清鎮市首期電商人才培訓班開班
- 每日速看!美股雷達供應商Arbe大漲近50%,毫米波雷達概念股集體高
- 環球觀點:匯豐控股開盤漲超5% 高盛上調其目標價
- 全球視點!五菱汽車港股漲超12% 2022年凈利潤同比扭虧
- 今日熱訊:美股4D成像雷達解決方案供應商Arbe大漲近50% 毫米波雷達概念股集體高開
- 當前短訊!三星已連續17年稱霸電視市場
- 焦點快報!美國1月成屋銷售量再下降 已連續12個月下滑
- 港股開盤:恒指跌0.08%,科網股、新能源汽車股普遍低開
- 速遞!券商晨會精華:把握A股在兩會前后的日歷效應
- 視訊!智能電視太“智障”被吐槽:操作太復雜 幾千元買個擺設