日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

9 個 yyds 的 Java 項目,可應對各種私活

 

Sa-Token 是一個輕量級 Java 權限認證框架,主要解決:登錄認證、權限認證、Session會話、單點登錄、OAuth2.0、微服務網關鑒權等一系列權限相關問題。Sa-Token 的 API 設計非常簡單,有多簡單呢?以登錄認證為例,你只需要:

// 在登錄時寫入當前會話的賬號id
StpUtil.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); // 標記當前會話登錄的賬號id
StpUtil.getLoginId(); // 獲取當前會話登錄的賬號id
StpUtil.isLogin(); // 獲取當前會話是否已經登錄, 返回true或false
StpUtil.logout(); // 當前會話注銷登錄
StpUtil.logoutByLoginId(10001); // 讓賬號為10001的會話注銷登錄(踢人下線)
StpUtil.hasRole("super-admin"); // 查詢當前賬號是否含有指定角色標識, 返回true或false
StpUtil.hasPermission("user:add"); // 查詢當前賬號是否含有指定權限, 返回true或false
StpUtil.getSession(); // 獲取當前賬號id的Session
StpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的Session
StpUtil.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

9 個 yyds 的 Java 項目,可應對各種私活

 

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<Boolean> 類對象
@Post("http://localhost:8080/user")
Result<Booelean> 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

9 個 yyds 的 Java 項目,可應對各種私活

 

Liteflow 為解耦復雜邏輯而生,如果你要對復雜業務邏輯進行新寫或者重構,用 liteflow 最合適不過。它是一個輕量,快速的組件式流程引擎框架,組件編排,幫助解耦業務代碼,讓每一個業務片段都是一個組件。

使用 Liteflow,你需要去把復雜的業務邏輯按代碼片段拆分成一個個小組件,并定義一個規則流程配置。這樣,所有的組件,就能按照你的規則配置去進行復雜的流轉。同時 Liteflow 支持規則文件的熱加載,即時完成修改生效。并提供多種持久化規則的方式的擴展。

使用 LiteFLow,三大核心概念是組件,規則和上下文。

你需要這么像這樣去定義你的組件:

//這里普通組件
@LiteflowComponent(id = "a", name = "組件A描述")
public class ACmp extends NodeComponent {
@Override
public void process() {
//do your business
}
}

//這是條件組件
@LiteflowComponent(id = "b", name = "組件B描述")
public class BCondCmp extends NodeCondComponent {
@Override
public String processCond() {
//do your business
return "e";
}
}

然后去定義你的規則,LiteFlow支持 XML,yml,JSON 三種格式。這里以 XML 形式為例:

<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chain1">
<then value="a,b(c|d|e)"/> <!-- c為路由組件,用來路由到c,d,e -->
<then value="sub_chain"/> <!-- 子流程 -->
</chain>

<chain name="sub_chain">
<when value="f,g,h"/> <!-- when代表并行 -->
<then value="j,k" /> <!-- then代表串行 -->
</chain>
</flow>

這樣你的系統就會按照規則文件定義的方式,去執行你的業務組件。是不是很簡單?

那規則文件定義在哪呢,LiteFlow 并不限定你的規則文件來源,可以是本地文件,可以是注冊中心,可以是任何數據庫。LiteFlow 提供了非常自由的接口供你擴展,你想存儲在哪里都行。改變規則文件,即可實時刷新你的規則流程!如果你想做一個靈活度高,伸縮性強的系統,LiteFlow 是不是非常適合呢?

LiteFlow 為每一個請求都去開辟申請了一個 Slot,你可以理解為上下文,所有的組件共享這個 Slot。你可以在任意組件里通過對 Slot 的訪問來獲得任意數據,也可以存放任意數據。你也可以擴展 Slot,自定義這個 Slot 的屬性。

@LiteflowComponent(id = "a", name = "組件A描述")
public class ACmp extends NodeComponent {
@Override
public void process() {
Slot slot = this.getSlot();
//通過對slot的getData,setData,或者存取你自己擴展的slot屬性
}
}

正因為有 Slot 的存在,才抹平了組件與組件之間的差異性,使得每一個業務組件之間無強依賴。這樣的設計,就可以讓你的系統高度自由化,組件復用,組件調換順序得以方便的實現!

LiteFlow 還支持 2 種腳本語言的接入,目前支持 Groovy 和 QLExpress 兩種腳本語言。你可以在 xml/yml/json 定義腳本,以下以 XML 為例:

<?xml version="1.0" encoding="UTF-8"?>
<flow>
<nodes>
<node id="s1" name="普通腳本" type="script">
<![CDATA[
def a=3;
def b=2;
slot.setData("s1",a*b);
]]>
</node>

<node id="s2" name="條件腳本" type="cond_script">
<![CDATA[
count = slot.getData("count");
if(count > 100){
return "a";
}else{
return "b";
}
]]>
</node>
</nodes>

<chain name="chain1">
<then value="a,b,c,s1"/>
</chain>

<chain name="chain2">
<then value="d,s2(a|b)"/>
</chain>
</flow>

那么在什么地方定義是哪種語言的腳本呢?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

9 個 yyds 的 Java 項目,可應對各種私活

 

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

9 個 yyds 的 Java 項目,可應對各種私活

 

5.1 介紹

一站式問題定位平臺,還在為線上問題而煩惱嗎?

線程棧監控、線程池監控、動態 arthas 命令集、依賴分析等等等,致力于應用級監控,幫助開發人員快速定位問題。

5.2 有什么特性

  • 兼容性:整體監控不管你是 IDC、ECS、Docker 部署,都可完美兼容;
  • 易用:無需任何配置,開箱即用,基于 agent 無侵入接入,升級應用端無感知;
  • 強大:支持對應用的基礎監控、堆棧監控、線程池監控等等;
  • 高擴展:提供良好的擴展接口,給你自主選擇。

使用后能帶來怎樣工作效率上的提升。

9 個 yyds 的 Java 項目,可應對各種私活

 

5.3 功能展示

 

實例中心(展示當前實例信息)

9 個 yyds 的 Java 項目,可應對各種私活

 

基礎信息(點擊實例->展示當前實例的基礎信息)

9 個 yyds 的 Java 項目,可應對各種私活

 

依賴監控(點擊實例-〉展示當前實例的依賴包信息)

9 個 yyds 的 Java 項目,可應對各種私活

 

Arthas 命令操作

9 個 yyds 的 Java 項目,可應對各種私活

 


9 個 yyds 的 Java 項目,可應對各種私活

 

線程池監控

9 個 yyds 的 Java 項目,可應對各種私活

 

實時線程棧

9 個 yyds 的 Java 項目,可應對各種私活

 

歷史線程棧

9 個 yyds 的 Java 項目,可應對各種私活

 

想要了解更多請參考:
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

9 個 yyds 的 Java 項目,可應對各種私活

 

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 對比

9 個 yyds 的 Java 項目,可應對各種私活

 


9 個 yyds 的 Java 項目,可應對各種私活

 

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

9 個 yyds 的 Java 項目,可應對各種私活

 

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 接入方式

9 個 yyds 的 Java 項目,可應對各種私活

 

使用后你的每行日志會變成以下格式:

9 個 yyds 的 Java 項目,可應對各種私活

 

想要了解更多請參考:
https://gitee.com/dromara/TLog。

8. ImageCombiner

無需 P 圖,用 Java 也能合成很好看的圖,簡單的使用方式,服務端批量合圖利器!

官方網站:
http://dromara.gitee.io/image-combiner

Gitee托管倉庫:
https://gitee.com/dromara/image-combiner

9 個 yyds 的 Java 項目,可應對各種私活

 

8.1 介紹

ImageCombiner 是一個專門用于 Java 服務端圖片合成的工具。沒有很復雜的功能,追求簡單實用,從實際業務場景出發,提供簡單的接口,幾行代碼即可實現圖片拼合(當然用于合成水印也可以)。特別適合圖片營銷、產品分享等需要實時生成圖片場景。

8.2 特性

素材上支持圖片、文本、矩形三種,支持元素的定位、縮放、旋轉、圓角、透明度、顏色、字體、字號、刪除線、居中繪制、文本自動換行等特性,足夠覆蓋圖片合成的日常需求。項目不依賴任何框架,完全基于 JDK 本身編寫,沒有各種花里胡哨的東西,性能還是相當不錯的。

8.3 效率提升

通過對 Graphics2D 的封裝和元素模型的提煉,屏蔽了圖像處理細節,把復雜的編碼簡化為設置各個元素的位置、屬性即可。作者日常工作中,一個約含十余個元素的復雜圖片合成,開發加調試(主要是對比設計稿還原度)20分鐘即可搞定,極大的釋放了生產力。

8.4 效果預覽

9 個 yyds 的 Java 項目,可應對各種私活

 

最簡單的例子:

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 個 yyds 的 Java 項目,可應對各種私活

 

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 特性

標準認證協議

9 個 yyds 的 Java 項目,可應對各種私活

 

登錄支持

9 個 yyds 的 Java 項目,可應對各種私活

 

  • 提供標準的認證接口以便于其他應用集成 SSO,安全的移動接入,安全的 API、第三方認證和互聯網認證的整合;
  • 提供用戶生命周期管理,支持 SCIM 2 協議,基于 Apache Kafka 代理,通過連接器(Connector)實現身份供給同步;
  • 認證中心具有平臺無關性、環境多樣性。支持 Web、手機、移動設備等。如 Apple IOS、Andriod 等。將認證能力從 B/S 到移動應用全面覆蓋;
  • 多種認證機制并存,各應用系統可保留原有認證機制,同時集成認證中心的認證;應用具有高度獨立性,不依賴認證中心,又可用使用認證中心的認證,實現單點登錄;
  • 基于 Java EE 平臺,采用 Spring、MySQL、Tomcat、Redis、Apache Kafka 等開源技術,微服務架構,擴展性強;
  • 開源、安全、自主可控,許可證 Apache 2.0 License & MaxKey 版權聲明。

 

界面預覽

9 個 yyds 的 Java 項目,可應對各種私活

 


9 個 yyds 的 Java 項目,可應對各種私活

 


9 個 yyds 的 Java 項目,可應對各種私活

 


9 個 yyds 的 Java 項目,可應對各種私活

 

想要了解更多請參考:
https://gitee.com/dromara/MaxKey。

最后

其實Dromara開源社區還有最知名的項目(也是star最多的項目)——Hutool,那我為什么不寫呢。我想說,這框架普及率太高了,幾乎是可以取代 Apache Common 包、Guava包的存在,程序員應該每個人都用下。

以上推薦的開源項目,也是 Dromara Java 社區里的精品項目,很多都已經是 GVP 項目了,用好這些框架/工具,真的能讓工作效率大大提升。

分享到:
標簽:項目 Java
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定