成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不可不知的七個出色的Java項目

譯文
開發(fā) 前端
Java生態(tài)系統(tǒng)充斥著幾乎滿足各種編程需求的眾多工具和框架。本文介紹了您不想錯過的七個開源Java項目。

譯者 | 布加迪

審校 | 重樓

Java生態(tài)系統(tǒng)里面有形形色色、五花八門的開源項目,這些項目是為了滿足各種可以想象到的需求而開發(fā)的。我們很容易錯過其中一些出色的項目。下面介紹七個開源Java項目,從全棧應用程序開發(fā)微服務、WasmJVM替代方案,各種需求都能滿足

1.Vaadin的Hilla

Hilla是一個全棧框架,擁有基于Java的后端和JavaScript前端。它支持響應式前端框架React和Lit。

Hilla讓您可以用一個簡單的命令npx @vaadin/cli init --hilla foundry-hilla搭建一個新的全棧項目。這是一個NPM命令,但它將部署帶有Vite構建的前端目錄的標準Maven布局,并且一切都準備就緒,使用./mvnw腳本即可協(xié)同運行。

Hilla在兩個應用程序之間強制執(zhí)行類型,這意味著您的IDE可以在Java API和使用它的TypeScript前端當中檢測和傳遞更改。在這個框架中,自動完成和重構完全可以正常使用。這功能在感覺上類似全TypeScript環(huán)境中的tRPC。

Hilla還通過JPA在Hibernate上與MySQL和PostgreSQL許多SQL數(shù)據(jù)庫集成持久

它有點像jHipster,但更自成一體。這意味著Hilla它所能結合的技術方面不是很靈活,但它為您提供了一條更平坦的跨界之路。Hilla得到了精心的維護和記錄。如果您需要用Java構建一個全棧應用程序,并且喜歡React或Lit作為端,Hilla是一種值得考慮的出色框架。

相關鏈接:https://www.infoworld.com/article/3655139/intro-to-hilla-the-full-stack-java-framework.html

2.jHipster

繼續(xù)圍繞全棧框架這個主題,我們接下來介紹jHipster。jHipster采用了一種非常靈活的方法,可以使用Java作為API中間件,將多種不同的技術整合到一個連貫的堆棧中。您可以從幾個響應式前端以及眾多SQL和NoSQL數(shù)據(jù)庫系統(tǒng)中進行選擇。

與Hilla一樣,jHipster首先使用NPM軟件jHipster -generator工具生成應用程序。該工具將逐步引導您完一份問卷,讓您對其功能有一清楚的了解。如果您碰巧遇到ERR_PACKAGE_PATH_NOT_EXPORTED錯誤,請參閱這里的解決方案:https://github.com/jhipster/generator-jhipster/issues/19627。

jHipster首先讓您在單體式應用程序、微服務架構或網(wǎng)關之間進行選擇,讓您對該框架的范圍有一些了解。如果您選擇單體式應用程序,隨后就可以使用Spring WebFlux把它變成一個類似響應式應用程序。接下來,您可以選擇不同類型的身份驗證,比如JWT或Oauth 2。然后從幾個數(shù)據(jù)庫系統(tǒng)進行選擇,比如SQL、MongoDB和Cassandra,隨后從二級應用程序緩存中進行選擇,比如Ehcache、Memcached或Redis。

接下來,jHipster生成器工具允許添加另外幾項技術用于搜索引擎的Elasticsearch使用Spring WebSocket的WebSockets作為異步消息代理的Apache Kafka,以及使用OpenAPI-generatorAPI優(yōu)先開發(fā)技術。接下來,您可以從幾前端框架中選擇一個,生成Admin UI如果您這么選擇的)以及幾個主題。

jHipster還擁有國際化和測試功能,它支持Maven又支持Gradle。

這是相當強大功能能夠生成域模型、數(shù)據(jù)結構以及與之配套的UI。jHipster是構建多種類型Java應用程序的出色選擇。

關鏈接:https://www.infoworld.com/article/3661308/intro-to-jhipster-a-full-stack-framework-for-java-and-javascript.html

3.GraalVM

GraalVM項目于2018年3月問世旨在提供更廣泛的虛擬機實現(xiàn)。GraalVM可以做JVM能做的所有事情,還不止于此它允許用戶使用眾多語言并輸出到眾多目標執(zhí)行環(huán)境。它還集成幾種類型的編譯器,包括可以增強性能的JIT及時編譯器。

GraalVM可以運行任何編譯成LLVM的語言,包括C、C++、RustSwift等。它還可以處理字節(jié)碼語言,比如Java、Scala、Kotlin和Groovy。它支持JavaScript、Python、Ruby和R語言。在未來,我們望看到GraalVM支持Zig。

這意味著我們獲得了JVM面向所有類型語言的一次寫入隨處運行的優(yōu)點。比如說,GraalVM可以拿來編譯LLVM字節(jié)碼C程序,使用lli命令運行它。或者,GraalVM可以使用clang直接將C代碼編譯可執(zhí)行文件。GraalVM輸出許多但不是所有)語言和平臺的獨立執(zhí)行版本。

它還包括對許多目標二進制文件的支持,比如Wasm、Linux變體、macOS、Windows、iOS和安卓針對許多目標,GraalVM支持無需安裝GraalVM即可運行的原生映像。它還允許開發(fā)人員選擇執(zhí)行模式(比如JIT編譯、AOT編譯和解釋),從而微調(diào)性能配置文件。

GraalVM得到了精心的維護和記錄,擁有一個活躍的社區(qū)。整體上看,它是一個引人注目的項目,正漸漸成為一種通用語言工具。請參閱GraalVM項目主頁https://www.graalvm.org/22.0/docs/introduction/,以了解更多信息。

4.Micronaut

Micronaut是Java開發(fā)方面一個新思路面向現(xiàn)代云和無服務器環(huán)境。它擁有眾多功能,比如用于搭建、構建、執(zhí)行和測試項目的命令行工具,支持眾多技術。最重要的是,Micronaut是圍繞支持AOT的控制反轉IOC框架設計的,這種框架在面對大型代碼庫時保持啟動時間。

再加上面向微服務的支持,比如服務發(fā)現(xiàn)、跟蹤和容器化部署對于現(xiàn)代Java開發(fā)來說,Micronaut是一經(jīng)過深思熟慮的、引人注目的選擇。

Micronaut提供了基于Web的項目設計器,您可以使用它來了解可以入到Micronaut核心的工具的種類。這個工具實質上類似Spring Initializr或jHipster的在線生成器,但它有自己的特點。Micronaut的核心是響應式,支持像RxJava和Reactor這樣的響應式實現(xiàn),其他一切都建立在這個核心概念上。Micronaut包含自己的響應式HTTP客戶軟件

Micronaut中的每個節(jié)點都是一個響應式組件,可以使用ZooKeeper或Eureka等集中式服務代理組合到龐大的微服務架構

Micronaut使用戶很容易通過一站式框架來采用最佳實踐這種框架在廣度上類似Spring但更注重具體的實現(xiàn)細節(jié)。對于面對基于Java的云和無服務器環(huán)境的開發(fā)人員來說,這是一個誘人的選擇。

相關鏈接:https://www.infoworld.com/article/3658968/intro-to-micronaut-a-cloud-native-java-framework.html

5.MicroStream

在基于Java的面向對象持久性的發(fā)展過程中,MicroStream可能代表了最終的概念完善。它獲取運行時對象圖的原樣,允許使用面向對象編程語義將其持久化到任意數(shù)量的底層數(shù)據(jù)庫系統(tǒng)

MicroStream允許您遵循對象和屬性這一概念同時該框架完成保存和恢復它們的大部分工作。作為一名開發(fā)人員,您仍然需要考慮抓取策略和持久化邊界元關注點(meta concerns),但是這些元關注點的定義非常簡單,基本上不會干擾應用程序代碼,運行起來就像不考慮持久化一樣。

MicroStream包含根(root)的概念,它定義了持久化樹的根。一個應用程序可以有多個根,如代碼片段1所示。

代碼片段1. 用MicroStream保存和恢復

// Saving
EmbeddedStorageManager manager = EmbeddedStorage.start();
manager.setRoot(myObject);
manager.storeRoot();
//Restoring
EmbeddedStorageManager storageEngine = EmbeddedStorage.start();
myObject = (MyClass) storageEngine.root();

MicroStreamJava中對象持久化提供了一條的思路,絕對值得開展任何新項目的開發(fā)人員關注。

6.TeaVM

將Java編譯成WasmWebAssembly仍然是一個前沿領域,但TeaVM使用戶在今天就能這么做。TeaVM支持將Java字節(jié)碼轉換JavaScript類似Google Web Toolkit和Wasm。這些可用于創(chuàng)建在瀏覽器內(nèi)部使用Java代碼和庫的Web應用程序。

TeaVM的工作機理是,先將代碼編譯為低級的中間表示,然后進一步優(yōu)化轉譯成WebAssembly指令。由此生成的代碼非常高效,可以在任何支持WebAssembly的現(xiàn)代瀏覽器中運行。

TeaVM的主要優(yōu)點之一是它支持流行的Java框架,比如Spring和Hibernate。開發(fā)人員可以使用這些框架來構建復雜的全棧Web應用程序,然后將代碼編譯成Wasm用于基于Web的部署。

雖然TeaVM仍然是處于萌芽階段的項目——創(chuàng)建者將其用于日常工作,然后將修正版和改進添加到開源代碼庫中,但它似乎提供了目前從Java到Wasm的最佳途徑。

的來說,TeaVM是一個強大而靈活的工具,用于使用Java開發(fā)Web應用程序,它提供了在瀏覽器和其他Wasm環(huán)境中處理Java的一條有趣途徑。

7.Apache Flink

Flink啟動于2011年,現(xiàn)已發(fā)展成為一個領先的事件處理框架。愛彼迎和Netflix等許多家喻戶曉的公司都用于實時處理,一個相對容易管理的軟件包卻為用戶提供了強大的功能。

Apache Flink將容錯和狀態(tài)管理整合到分布式、容器友好的系統(tǒng)中。它可以自動擴展或縮小規(guī)模,以處理動態(tài)負載。

雖然在Docker中與Kubernetes一起運行Flink很典型,但Flink也可以使用Apache Beam等框架在無服務器基礎設施上運行,比如AWS Lambda、Azure Functions和Google Cloud Functions。這提供了僅需為處理過程中使用的計算資源付費的好處,便于輕松高效地擴展。

Flink在底層有很多功能,但簡單的特性很容易掌握。比如代碼片段2中,F(xiàn)link通過端口9999監(jiān)視套接字,并計算在那里接收到的文本中的單詞數(shù),然后將數(shù)據(jù)輸出到控制臺。

代碼片段2. 使用Flink處理簡單文本

DataStream<String> text = env.socketTextStream("localhost", 9999);

DataStream<Tuple2<String,Integer>> wordCounts = text
 .flatMap(new FlatMapFunction<String, Tuple2<String,Integer>>() {
 public void flatMap(String value, Collector<Tuple2<String,Integer>> out) {
  for (String word : value.split(" ")) {
  out.collect(new Tuple2<String,Integer>(word, 1));
 }
 }
 })
 .keyBy(0)
 .sum(1);

wordCounts.print();

可以看到Flink功能樣式兼容,平臺本身以一種擴展、容錯的方式將功能擴展到云基礎設施。總之,它是一個給人留下深刻印象的項目,適用于實時事件處理。

關鏈接:https://nightlies.apache.org/flink/flink-docs-master/docs/try-flink/flink-operations-playground/#starting-the-playground

原文標題:7 awesome Java projects you should know about,作者:Matthew Tyson

責任編輯:華軒 來源: 51CTO
相關推薦

2023-09-20 09:00:00

2023-11-13 14:19:57

Golang編程語言

2023-06-26 14:11:06

SQLC++語言

2023-09-08 10:23:13

JavaScriptNPM模塊

2023-10-17 18:03:30

Code更改函數(shù)

2024-03-21 08:57:39

語言軟件開發(fā)

2010-06-11 14:46:38

可路由協(xié)議

2023-09-22 12:14:33

2020-11-30 13:12:04

Linux文本命令

2015-01-15 09:34:28

2015-06-10 10:56:50

iOS開發(fā)技巧

2010-12-17 11:22:11

職場

2023-06-12 00:38:55

開源Java庫工具

2023-03-24 07:30:53

JavaScript項目元框架

2021-08-12 16:02:22

Jupyter NotPython命令

2015-07-28 16:48:04

云計算性能測試云服務

2024-09-23 21:05:45

2020-11-11 21:27:55

緩沖文件調(diào)用

2010-04-16 17:09:18

Oracle查看鎖

2025-01-03 17:10:54

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜综合 | 国产一区www | 日日操夜夜操天天操 | 最近免费日本视频在线 | 亚洲久久 | 国产精品久久久久久久久免费相片 | 中文字幕 欧美 日韩 | 91久久精品国产 | 亚洲午夜av久久乱码 | 特级毛片爽www免费版 | 亚洲精品在线看 | 精品国产一区二区在线 | 日韩欧美黄色 | 亚洲免费在线 | 国产一区二区三区视频 | 蜜臀久久 | 99在线精品视频 | 国产日韩在线观看一区 | 黄色一级视频 | 亚洲欧美精品一区 | 久久久精品视频免费看 | 日韩免费av网站 | 国产日韩精品一区 | 久久视频免费观看 | 91美女在线观看 | 久久久久久美女 | 免费一区二区三区 | 中文字幕二区 | 精品一区电影 | 欧美精品二区三区 | 色综合一区二区 | 亚洲www啪成人一区二区麻豆 | 九九免费视频 | 男女羞羞视频免费 | 99福利视频| 久草免费在线视频 | 国产精品一区二区三区在线播放 | 日本在线视| 在线国产小视频 | 日韩一区二区免费视频 | 国产精品欧美一区二区三区不卡 |