Ⅰ 我想用協同過濾的演算法寫了一個java語言的圖書推薦系統.能跟我講一下大概要怎麼做嗎.有點沒頭緒
針對完全沒有編程經驗的初學者,java入門沒什麼特別好的書,找點視頻看看吧,跟著視頻敲代碼,慢慢就能看懂書了。
----------------------如果堅持要看書的話可以考慮以下----------------------
1. head first java
通俗易懂,重點突出的書,比較薄,適合初學者快速入門,缺點是編輯自以為幽默的加了很多不相乾的段子在裡面,廢話太多。
2. Java A beginner's guide by Herbert Schildt
相比head first java,沒有廢話,語言精煉。
3. 官方的tutorial
免費的,在線閱讀的,也不錯。
4. 瘋狂java講義
如果英文不夠好的話,可以考慮用這本書入門,中文世界裡寫的比較好的
5. Introction to java programming by Y. Daniel Liang
梁勇這本書比較厚,講演算法比較多,如果你時間充足的話可以用這本書入門。
----------------------!!一定要避開這兩個大坑!!----------------------
很多人推薦的core java 和 Thinking in java 其實並不適合初學者(沒有編程經驗的)。
1. core java內容太多太雜,沒有突出重點,並且結構組織的像本字典,適合入門了以後用來系統復習。
2. Thinking in java 沒有編程經驗根本看不懂,過幾年再看吧,不看也沒關系。
Ⅱ 猜你喜歡怎麼做javaweb
基於用戶的協同過濾演算法,或者基於商品的協同過濾演算法,簡單來說就是需要用大數據如hadoop,當然也可以自己寫推薦演算法。
Ⅲ Java開發想嘗試大數據和數據挖掘,如何規劃學習
必須技能10條:
01.Linux 基本操作
02.python&爬蟲介紹
03.hadoop分布式集中
04.離線數據處理
05.實時數專據處理
06.ETL與環境相關
07.大數據應用屬與數據挖掘
08.java高級(虛擬機、並發)
09..HBase(JavaAPI操作+Phoenix )
10. Kafka
11. Spark (Core+sparksql+Spark streaming )
Ⅳ Python實現協同過濾推薦演算法,用的大一些的數據集就報錯MemoryError
1.
python雖然易用,復但是內制存佔用比較多;所以如果你有C/C++/Java基礎,考慮用這些語言來實現;
2.
CF演算法需要計算大量的相似度,如果能把中間結果存起來,或者簡化計算過程(如,你可能會重復計算一個item的均值)可以省下不少內存;(個人試過計算1w個用戶Pearson是沒問題的)
3.
如果內存實在不夠用,那就用時間換空間,把中間計算結果分成小文件存到磁碟上,用的時候再讀取。
供參考。
Ⅳ 誰有基於用戶的協同過濾 java代碼嗎謝謝
下載mahout源碼,裡面好像有協同過濾演算法
Ⅵ java,我有一個資料庫表userid,bookid,score,用這個表用協同過濾演算法找到愛好相似的用戶
//皮爾遜相關系數分析
//介於-1到1之間。相關系數越接近與1,說明兩個人越相似。
//你先參考下這個雖然裡面只有Python的代碼:
//我用java去做一下試試
importjava.util.*;
publicclassTest{
publicstaticvoidmain(String[]args){
Map<String,HashMap<String,Double>>cri=newHashMap<String,HashMap<String,Double>>();
//模擬資料庫中的數據,實際運用時請靈活變動
getData(cri);
System.out.println(cri.get("Gene").get("LadyintheWater"));
//獲得評價值
System.out.println(getSim(cri,"Gene","Lisa"));
}
//模擬資料庫中的數據
publicstaticvoidgetData(Map<String,HashMap<String,Double>>cri){
HashMap<String,Double>temp=newHashMap<String,Double>();
temp.put("LadyintheWater",2.5);
temp.put("SnakesonaPlane",3.5);
temp.put("JustMyLuck",3.0);
temp.put("SupermanReturns",3.5);
temp.put("You,MeandDupree",2.5);
temp.put("TheNightListener",3.0);
cri.put("Lisa",temp);
HashMap<String,Double>temp1=newHashMap<String,Double>();
temp1.put("LadyintheWater",3.0);
temp1.put("SnakesonaPlane",3.5);
temp1.put("JustMyLuck",1.5);
temp1.put("SupermanReturns",5.0);
temp1.put("You,MeandDupree",3.5);
temp1.put("TheNightListener",3.0);
cri.put("Gene",temp1);
}
publicstaticdoublegetSim(Map<String,HashMap<String,Double>>cri,Stringp1,Stringp2){
HashMap<String,Double>p1m=cri.get(p1);
HashMap<String,Double>p2m=cri.get(p2);
List<String>simBook=newArrayList<String>();
for(Map.Entry<String,Double>entry:p1m.entrySet()){
if(p2m.containsKey(entry.getKey())){
simBook.add(entry.getKey());
}
}
//判斷相同元素的個數
if(simBook.size()==0){
return1;
}
//對所有偏好求和
doublesum1=0d,sum2=0d;
//求平方和
doublesum1Sq=0d,sum2Sq=0d;
//求乘積和
doublepSum=0d;
for(Strings:simBook){
sum1+=p1m.get(s);
sum2+=p2m.get(s);
sum1Sq+=Math.pow(p1m.get(s),2);
sum2Sq+=Math.pow(p2m.get(s),2);
pSum+=p1m.get(s)*p2m.get(s);
}
//計算皮爾遜評價值
doublenum=pSum-(sum1*sum2/simBook.size());
doubleden=Math.sqrt((sum1Sq-Math.pow(sum1,2)/simBook.size())*(sum2Sq-Math.pow(sum2,2)/simBook.size()));
if(den==0){
return0;
}
returnnum/den;
}
}
Ⅶ 協同過濾java用什麼實現
眾所周知,java在處理數據量比較大的時候,載入到內存必然會導致內存溢出,而在一些數據處理中我們不得不去處理海量數據,在做數據處理中,我們常見的手段是分解,壓縮,並行,臨時文件等方法;例如,我們要將資料庫(不論是什麼資料庫)的數據導出到一個文件,一般是Excel或文本格式的CSV;對於Excel來講,對於POI和JXL的介面,你很多時候沒有法去控制內存什麼時候向磁碟寫入,很惡心,而且這些API在內存構造的對象大小將比數據原有的大小要大很多倍數,所以你不得不去拆分Excel,還好,POI開始意識到這個問題,在3.8.4的版本後,開始提供cache的行數,提供了SXSSFWorkbook的介面,可以設置在內存中的行數,不過可惜的是,他當你超過這個行數,每添加一行,它就將相對行數前面的一行寫入磁碟(如你設置2000行的話,當你寫第20001行的時候,他會將第一行寫入磁碟),其實這個時候他些的臨時文件,以至於不消耗內存,不過這樣你會發現,刷磁碟的頻率會非常高,我們的確不想這樣,因為我們想讓他達到一個范圍一次性將數據刷如磁碟,比如一次刷1M之類的做法,可惜現在還沒有這種API,很痛苦,我自己做過測試,通過寫小的Excel比使用目前提供刷磁碟的API來寫大文件,效率要高一些,而且這樣如果訪問的人稍微多一些磁碟IO可能會扛不住,因為IO資源是非常有限的,所以還是拆文件才是上策;而當我們寫CSV,也就是文本類型的文件,我們很多時候是可以自己控制的,不過你不要用CSV自己提供的API,也是不太可控的,CSV本身就是文本文件,你按照文本格式寫入即可被CSV識別出來;如何寫入呢?下面來說說。。。在處理數據層面,如從資料庫中讀取數據,生成本地文件,寫代碼為了方便,我們未必要1M怎麼來處理,這個交給底層的驅動程序去拆分,對於我們的程序來講我們認為它是連續寫即可;我們比如想將一個1000W數據的資料庫表,導出到文件;此時,你要麼進行分頁,oracle當然用三層包裝即可,mysql用limit,不過分頁每次都會新的查詢,而且隨著翻頁,會越來越慢,其實我們想拿到一個句柄,然後向下游動,編譯一部分數據(如10000行)將寫文件一次(寫文件細節不多說了,這個是最基本的),需要注意的時候每次buffer的數據,在用outputstream寫入的時候,最好flush一下,將緩沖區清空下;接下來,執行一個沒有where條件的SQL,會不會將內存撐爆?是的,這個問題我們值得去思考下,通過API發現可以對SQL進行一些操作,例如,通過:PreparedStatementstatement=connection.prepareStatement(sql),這是默認得到的預編譯,還可以通過設置:PreparedStatementstatement=connection.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);來設置游標的方式,以至於游標不是將數據直接cache到本地內存,然後通過設置statement.setFetchSize(200);設置游標每次遍歷的大小;OK,這個其實我用過,oracle用了和沒用沒區別,因為oracle的jdbcAPI默認就是不會將數據cache到java的內存中的,而mysql里頭設置根本無效,我上面說了一堆廢話,呵呵,我只是想說,java提供的標准API也未必有效,很多時候要看廠商的實現機制,還有這個設置是很多網上說有效的,但是這純屬抄襲;對於oracle上面說了不用關心,他本身就不是cache到內存,所以java內存不會導致什麼問題,如果是mysql,首先必須使用5以上的版本,然後在連接參數上加上useCursorFetch=true這個參數,至於游標大小可以通過連接參數上加上:defaultFetchSize=1000來設置,例如:jdbc:mysql://xxx.xxx.xxx.xxx:3306/abc?zeroDateTimeconvertToNull&useCursorFetch=true&defaultFetchSize=1000上次被這個問題糾結了很久(mysql的數據老導致程序內存膨脹,並行2個直接系統就宕了),還去看了很多源碼才發現奇跡竟然在這里,最後經過mysql文檔的確認,然後進行測試,並行多個,而且數據量都是500W以上的,都不會導致內存膨脹,GC一切正常,這個問題終於完結了。我們再聊聊其他的,數據拆分和合並,當數據文件多的時候我們想合並,當文件太大想要拆分,合並和拆分的過程也會遇到類似的問題,還好,這個在我們可控制的范圍內,如果文件中的數據最終是可以組織的,那麼在拆分和合並的時候,此時就不要按照數據邏輯行數來做了,因為行數最終你需要解釋數據本身來判定,但是只是做拆分是沒有必要的,你需要的是做二進制處理,在這個二進制處理過程,你要注意了,和平時read文件不要使用一樣的方式,平時大多對一個文件讀取只是用一次read操作,如果對於大文件內存肯定直接掛掉了,不用多說,你此時因該每次讀取一個可控范圍的數據,read方法提供了重載的offset和length的范圍,這個在循環過程中自己可以計算出來,寫入大文件和上面一樣,不要讀取到一定程序就要通過寫入流flush到磁碟;其實對於小數據量的處理在現代的NIO技術的中也有用到,例如多個終端同時請求一個大文件下載,例如視頻下載吧,在常規的情況下,如果用java的容器來處理,一般會發生兩種情況:其一為內存溢出,因為每個請求都要載入一個文件大小的內存甚至於,因為java包裝的時候會產生很多其他的內存開銷,如果使用二進制會產生得少一些,而且在經過輸入輸出流的過程中還會經歷幾次內存拷貝,當然如果有你類似nginx之類的中間件,那麼你可以通過send_file模式發送出去,但是如果你要用程序來處理的時候,內存除非你足夠大,但是java內存再大也會有GC的時候,如果你內存真的很大,GC的時候死定了,當然這個地方也可以考慮自己通過直接內存的調用和釋放來實現,不過要求剩餘的物理內存也足夠大才行,那麼足夠大是多大呢?這個不好說,要看文件本身的大小和訪問的頻率;其二為假如內存足夠大,無限制大,那麼此時的限制就是線程,傳統的IO模型是線程是一個請求一個線程,這個線程從主線程從線程池中分配後,就開始工作,經過你的Context包裝、Filter、攔截器、業務代碼各個層次和業務邏輯、訪問資料庫、訪問文件、渲染結果等等,其實整個過程線程都是被掛住的,所以這部分資源非常有限,而且如果是大文件操作是屬於IO密集型的操作,大量的CPU時間是空餘的,方法最直接當然是增加線程數來控制,當然內存足夠大也有足夠的空間來申請線程池,不過一般來講一個進程的線程池一般會受到限制也不建議太多的,而在有限的系統資源下,要提高性能,我們開始有了newIO技術,也就是NIO技術,新版的裡面又有了AIO技術,NIO只能算是非同步IO,但是在中間讀寫過程仍然是阻塞的(也就是在真正的讀寫過程,但是不會去關心中途的響應),還未做到真正的非同步IO,在監聽connect的時候他是不需要很多線程參與的,有單獨的線程去處理,連接也又傳統的socket變成了selector,對於不需要進行數據處理的是無需分配線程處理的;而AIO通過了一種所謂的回調注冊來完成,當然還需要OS的支持,當會掉的時候會去分配線程,目前還不是很成熟,性能最多和NIO吃平,不過隨著技術發展,AIO必然會超越NIO,目前谷歌V8虛擬機引擎所驅動的node.js就是類似的模式,有關這種技術不是本文的說明重點;將上面兩者結合起來就是要解決大文件,還要並行度,最土的方法是將文件每次請求的大小降低到一定程度,如8K(這個大小是經過測試後網路傳輸較為適宜的大小,本地讀取文件並不需要這么小),如果再做深入一些,可以做一定程度的cache,將多個請求的一樣的文件,cache在內存或分布式緩存中,你不用將整個文件cache在內存中,將近期使用的cache幾秒左右即可,或你可以採用一些熱點的演算法來配合;類似迅雷下載的斷點傳送中(不過迅雷的網路協議不太一樣),它在處理下載數據的時候未必是連續的,只要最終能合並即可,在伺服器端可以反過來,誰正好需要這塊的數據,就給它就可以;才用NIO後,可以支持很大的連接和並發,本地通過NIO做socket連接測試,100個終端同時請求一個線程的伺服器,正常的WEB應用是第一個文件沒有發送完成,第二個請求要麼等待,要麼超時,要麼直接拒絕得不到連接,改成NIO後此時100個請求都能連接上伺服器端,服務端只需要1個線程來處理數據就可以,將很多數據傳遞給這些連接請求資源,每次讀取一部分數據傳遞出去,不過可以計算的是,在總體長連接傳輸過程中總體效率並不會提升,只是相對相應和所開銷的內存得到量化控制,這就是技術的魅力,也許不要太多的演算法,不過你得懂他。類似的數據處理還有很多,有些時候還會將就效率問題,比如在HBase的文件拆分和合並過程中,要不影響線上業務是比較難的事情,很多問題值得我們去研究場景,因為不同的場景有不同的方法去解決,但是大同小異,明白思想和方法,明白內存和體系架構,明白你所面臨的是沈陽的場景,只是細節上改變可以帶來驚人的效果。
Ⅷ Spark 推薦演算法-協同過濾-java的語句意思
協同過濾(Collaborative Filtering)的基本概念就是把這種方式變成自動化的流程
協同過濾主要是以屬版性或興趣相近權的用戶經驗與建議作為提供個性化的基礎。透過協同過濾,有助於搜集具有類似偏好或屬性的用戶,並將其意見提供給同一集群中的用戶作為參考,以滿足人們通常在決策之前參考他人意見的心態。
本人認為,協同過濾技術應包括如下幾方面:(1)一種比對和搜集每個用戶興趣偏好的過程;(2)它需要許多用戶的信息去預測個人的興趣偏好;(3)通過對用戶之間興趣偏好相關程度的統計去發展建議那些有相同興趣偏好的用戶。
Ⅸ Java畢業設計哪個好做
畢業季馬上到來,我相信很多人都已經在籌備畢業設計選題了,肯定有很多迷茫和不懂的學生,其實畢業設計並沒有大家想的那麼難,只要找對方法,方式,您可以很順利的完成的自己的畢業設計作品,
1:先結合自身所學知識進行選取畢設方向,(例如:軟體工程,網路技術,)
2:假設選定軟體工程:那麼包含了很多的開發語言。例如:Java php asp python 安卓,小程序等
3:選定開發語言後需要選定資料庫軟體:例如mysql sqlserver 選題有很多:
以下為JavaWeb方面的例子(更多題目請參考 https://java.xyz ,下面介紹的項目都可以在這里找到源碼)
----jd----
1-CRM客戶關系管理系統-ssh
2-戶籍管理系統-jsp
3-Java聊天室的設計與實現-swing
4-進銷存管理系統的設計與實現-springboot
5-超市積分管理系統-jsp
6-基於JSP的網上購書系統-ssh
7-基於SSH的嬰幼兒產品銷售系統的開發與設計
8-基於WEB的網上購物系統的設計與實現-ssh源碼
9-網上手機銷售系統-jsp
10-Java網上體育商城的設計與實現-ssh
11-基於JSP+Servlet開發高校社團管理系統
12-Java在線考試系統-ssh
13-java開發電影訂票網站系統-ssh14-JavaWeb校園二手平台項目+論文-ssh
15-百貨中心供應鏈管理系統+論文-ssh
16-固定資產管理系統+論文-ssh
17-網路考試系統的設計與實現+論文-jsp
18-基於JSP+Servlet開發簡單的新聞發布系統
19-基於JSP+Servlet開發在線租車系統
20-基於JSP+Servlet開發火車票網上訂票系統
21-基於JSP+Servlet開發簡單的醫院預約掛號系統
22-基於SSM開發在線考試系統
23-基於Struts2開發公司職工管理系統+說明書+任務書+方案書
24-基於S2SH開發彩票購買系統的設計與實現畢業設計+論文
25-基於Struts2+Hibernate開發小區物業管理系統
26-基於S2SH開發學生考勤管理系統+報告
27-基於S2SH開發車輛租賃管理系統的設計與實現+論文
28- 基於S2SH開發銀行個人業務管理系統
29-基於JavaSwing開發簡單的銀行管理系統
30-基於JavaSwing開發銀行信用卡管理系統
31-基於JSP+Servlet開發簡單的家居購物商城系統
32-基於JSP+Servlet開發手機銷售購物商城系統
33-基於JSP+Servlet開發物流管理系統
34-基於JSP機票預定系統
35-基於S2SH開發病房管理系統的設計與實現
36-基於S2SH開發就業招聘管理系統
37-基於S2SH開發圖書管理系統(新本版)+論文
38-基於S2SH開發學生公寓(宿舍)管理系統
39-基於SSM開發大學食堂采購管理系統
40-基於SSM開發學生信息管理系統
41-基於SSM開發在線家教預約系統
42-基於SSM開發自行車在線租賃管理系統
43-基於Struts2+Hibernate開發社區蔬菜、食品交易平台+論文
44-基於Struts2開發快遞收發系統
45-基於Struts2開發校園二手購物商城
46-基於Struts2開發學生信息管理系統
47-基於Struts2開發學生宿舍管理系統
48-基於JSP+Servlet+bootstrap開發電影院購票系統
49-基於JSP+Servlet開發學生成績管理系統+實驗報告
50-基於JSP+Servlet開發超市日常管理系統
51-基於JSP+Servlet開發開放實驗室預約系統+論文
52-基於JSP+Servlet開發網上服裝銷售購物商城系統+論文+PPT+任務書+檢查表
53-基於JSP+Servlet開發旅遊(景點賓館)系統
54-基於JSP+Servlet開發圖書管理系統+PPT+講解視頻
55-基於JSP+Servlet開發學生選課系統+論文
56-基於JSP開發雲餐廳自助點餐系統(前台+後台) 講解視頻
57-基於JSP+Servlet開發葯品管理系統
58-基於JSP+Servlet開發快遞管理系統+UML圖
59-基於JSP+Servlet開發小型酒店管理系統的設計與實現
60-基於JSP+Servlet開發在線聊天系統+論文+PPT
61-基於JSP+Servlet開發教師工資管理系統
62-基於JSP+Servlet開發汽車配件銷售管理系統的設計與實現+論文
63-基於SSM開發倉庫庫存管理系統
64-基於SSM開發學生請假管理系統
65-基於S2SH開發彩票購買系統的設計與實現畢業設計+論文
66-基於SSM開發餐飲業點餐系統
67-基於SSM開發學生信息管理系統
68-基於SSM開發校園外賣零食購物商城系統
69-基於S2SH開發醫院掛號預約系統
70-基於S2SH開發企業人事管理系統(新本版)
71-基於S2SH開發學生公寓(宿舍)管理系統
72-基於S2SH開發網上書店購物商城系統
73-基於S2SH開發學生宿舍管理系統
74-基於S2SH開發校園失物招領網+論文
75-基於S2SH開發教師科研項目管理系統
76-基於SpringMVC+Hibernate開發庫存(倉庫)管理系統
77-基於S2SH開發都勻房屋租售(租賃)系統+論文
78-基於SSH開發學生宿舍(公寓)管理系統+論文
79-基於SSM開發教務查詢管理系統
80-基於SSM開發葯店(葯品)管理系統
81-基於S2SH開發寵物之家在線寵物購買系統(前台+後台)+論文
82-基於SSM開發行政服務管理系統
83-基於S2SH開發網上預約預約掛號系統
84-基於SSM開發高校共享單車管理系統
85-基於S2SH開發網上蛋糕店(甜品)購物商城系統
86-基於S2SH開發在線聊天系統(群聊)
87-基於SSM開發在線學習網站(前台+後台)
88-基於SSM開發網上書店商城購物系統
89-基於S2SH開發在線學堂系統(課程學習網站 前台+後台)
90-基於Struts開發在線音樂播放網站
91-基於S2SH開發圖書管理系統
92-基於S2SH開發酒店點餐管理系統+論文
93-基於S2SH開發人力資源管理系統
94-基於S2SH開發房屋租賃管理系統
95-基於S2SH開發酒店管理系統+論文
96-基於S2SH開發網上鮮花(花店)商城的設計與實現+論文
97-基於S2SH開發醫院信息管理系統
98-基於SSH開發高校選課系統的設計與實現+論文
99-基於SSH網上招聘系統+論文+任務書+PPT
100-基於JSP+Servlet開發收費停車場管理系統+論文101-javaweb垃圾分類查詢系統源碼 ssm+mysql
102-基於SSM開發醫葯管理系統
103-基於S2SH開發房地產管理系統
104-基於S2SH開發化妝品銷售系統(購物商城 前台+後台)
105-基於SSM開發校園外賣零食購物商城系統(前台+後台)
106-基於S2SH開發中小學在線教育系統(前台+後台)107-基於JSP+Servlet開發失物招領系統
108-基於JSP+Servlet開發球隊活動管理系統
109-基於JSP+Servlet開發公交在線查詢
110-基於JSP開發Java在線學習平台
111-基於Struts2開發寵物領養系統的設計與實現+論文
112-基於Struts+Hibernate開發水果4S店營銷(購物商場)管理系統的設計與實現+論文
113-基於S2SH開發農產品網上銷售系統(購物商城 前台+後台)
114-jsp考勤管理系統-ic
115-jsp失物招領系統-ic
116-ssm畢業設計管理系統-ic
117-基於JSP的美食網站食譜網站、javaweb源碼-cs
118-基於JSP的旅遊信息發布網站、jsp+servlet+mysql+論文-cs
119-基於JSP的小說網站-cs
120-基於SSH的航空訂票系統-cs
122-基於springboot的企業資產管理系統源碼-cs
123-SSM實現類似京東的3C電子商城系統-cs
124-SSM實現復雜許可權控制的教務管理,教務評教系統-cs
125-JavaWeb開發ssm在線考試系統-cs
126-基於SpringBoot的博客系統-cs
127-基於SSM的校園二手交易平台-cs
128-JSP高校社團管理系統
源碼及原文鏈接:https://java.xyz/forum.php?mod=viewthread&tid=17
A-JSP項目
相冊管理系統
JSP九宮格日記本
鞋子商城銷售網站
圖書商城項目管理系統
JSP小說網
美食菜譜分享系統
酒店預定管理系統
學校宿舍管理系統
航班機票訂票網站
個人日記本
會員卡積分管理系統
寵物商城
企業財務管理系統
校園任務管理系統
校園一卡通管理系統
停車位預定管理系統
學生考勤管理系統
游戲購買網站
蛋糕甜品店管理系統
簡單院校工資管理系統
校園運動會管理系統
師生交流學習管理系統
新聞發布管理系統
家政服務管理系統
圖書借閱管理系統
私人牙科診所病歷管理系統
教師科研信息管理系統
宿舍寢室管理系統
在線醫療預約掛號管理系統
員工出差請假考勤管理系統
航班機票銷售管理系統
失物招領管理系統
校友同學網站管理系統
物流公司企業管理系統
會議-會議室管理系統
學生社團管理系統
校園二手物品交易兼社交網站
圖書銷售管理系統
個人博客
鮮花銷售商城管理系統
教務教學兼學生成績管理系統
學生信息管理系統
學生成績管理系統
人事管理系統
圖書管理系統
論壇的實現
學生選課信息管理系統
網路教學平台
學生管理系統
學生成績分析管理系統
圖書借閱管理系統
在線考試系統
音樂管理系統
B-SSM項目
SSM個人記賬本
垃圾分類查詢管理系統
新聞發布管理系統
房屋出租管理系統
簡單教務查詢管理系統
快遞物流管理系統
學生管理系統
企業工資管理系統
電子書網站管理系統
電影售票管理系統
酒店預定管理系統
酒店後台管理系統
學生選課管理系統
在線考試管理系統
停車場管理系統
汽車出租管理系統
校園幫跑腿管理平台
簡單個人相冊管理系統
客戶關系管理系統
網上超市購物商城管理系統
健身房管理系統
簡單網頁聊天管理系統
在線視頻教育網站
企業官方網站
新聞網站管理系統
個人博客管理系統
個人博客網站管理系統
畢業設計管理系統
餐廳點餐收銀管理系統
房屋租賃管理系統
醫葯信息管理系統
協同過濾音樂推薦管理系統
農產品朔源管理系統
人力資源人事管理系統
健身房俱樂部管理系統
學生會管理系統
檯球室計費管理系統
的KTV管理系統
駕校預約管理系統
醫院掛號預約管理系統
汽車俱樂部管理系統
汽車維修中心管理系統
簡單院校教師工資管理系統
網上零食超市商城
畢業設計選題管理系統
宿舍寢室管理系統
家庭理財記賬管理系統
物流快遞管理系統
寵物商城帶後台管理系統
學生成績信息管理系統
實驗室設備管理
醫院住院管理系統
網上外賣訂餐管理系統
失物招領管理系統
C-SSH項目
SSH圖書管理系統
SSH招聘網站
寵物交易管理系統
物業管理系統
失物招領管理系統
通訊錄網站管理系統
物流快遞管理系統
失物招領管理系統
教學輔助視頻學習交流管理系統
簡單學生信息管理系統
畢業生去向登記就業管理系統
生態旅遊旅行網站
通訊錄管理系統
房屋線下銷售網站管理系統
小區物業管理系統
寵物領養飼養交流管理平台
網上問卷調查投票網站系統
網上拍賣管理系統
倉庫管理系統
汽車票銷售管理系統
火車票售票管理系統
房屋租賃管理系統
實驗室預約管理系統
校友同學網站
校園運動會管理系統
網上銀行管理系統
會議室管理系統
企業人力資源管理系統
新聞管理發布網站系統
酒店管理系統
電影訂票管理系統
小區/公司/物業停車場管理系統
學生宿舍管理系統
企業進銷存管理系統
的攝影網站
招聘網站,包含設計文稿
D-SpringBoot項目
SpringBoot招聘網站項目
企業固定資產管理系統
美容院預約管理系統
婚紗影樓攝影預約網站
美容院後台管理系統
線上網路文件管理系統
博客論壇管理系統
實現的一個簡單博客管理系統
圖書館圖書借閱管理系統
課程評分評價管理系統
校園報修管理
圖書管理系統
在線電子商城管理系統
汽車配件管理系統
Ⅹ GitHub上面有哪些經典的java框架源碼
Bazel:來自的構建工具,可以快速、可靠地構建代碼。官網
Gradle:使用Groovy(非XML)進行增量構建,可以很好地與Maven依賴管理配合工作。官網
Buck:Facebook構建工具。官網
位元組碼操作
編程方式操作位元組碼的開發庫。
ASM:通用底層位元組碼操作和分析開發庫。官網
Byte Buddy:使用流式API進一步簡化位元組碼生成。官網
Byteman:在運行時通過DSL(規則)操作位元組碼進行測試和故障排除。官網
Javassist:一個簡化位元組碼編輯嘗試。官網
集群管理
在集群內動態管理應用程序的框架。
Apache Aurora:Apache Aurora是一個Mesos框架,用於長時間運行服務和定時任務(cron job)。官網
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、後台運行、調度作業和一次性任務。官網
代碼分析
測量代碼指標和質量工具。
Checkstyle:代碼編寫規范和標准靜態分析工具。官網
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網
FindBugs:通過位元組碼靜態分析查找隱藏bug。官網
jQAssistant:使用基於Neo4J查詢語言進行代碼靜態分析。官網
PMD:對源代碼分析查找不良的編程習慣。官網
SonarQube:通過插件集成其它分析組件,對過去一段時間內的數據進行統計。官網
編譯器生成工具
用來創建解析器、解釋器或編譯器的框架。
ANTLR:復雜的全功能自頂向下解析框架。官網
JavaCC:JavaCC是更加專門的輕量級工具,易於上手且支持語法超前預測。官網
外部配置工具
支持外部配置的開發庫。
config:針對JVM語言的配置庫。官網
owner:減少冗餘配置屬性。官網
約束滿足問題求解程序
幫助解決約束滿足問題的開發庫。
Choco:可直接使用的約束滿足問題求解程序,使用了約束規劃技術。官網
JaCoP:為FlatZinc語言提供了一個介面,可以執行MiniZinc模型。官網
OptaPlanner:企業規劃與資源調度優化求解程序。官網
Sat4J:邏輯代數與優化問題最先進的求解程序。官網
持續集成
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產品。可以選擇開源許可,也可以購買商業版。官網
CircleCI:提供託管服務,可以免費試用。官網
Codeship:提供託管服務,提供有限的免費模式。官網
fabric8:容器集成平台。官網
Go:ThoughtWork開源解決方案。官網
Jenkins:支持基於伺服器的部署服務。官網
TeamCity:JetBrain的持續集成解決方案,有免費版。官網
Travis:通常用作開源項目的託管服務。官網
Buildkite: 持續集成工具,用簡單的腳本就能設置pipeline,而且能快速構建,可以免費試用。官網
CSV解析
簡化CSV數據讀寫的框架與開發庫
uniVocity-parsers:速度最快功能最全的CSV開發庫之一,同時支持TSV與固定寬度記錄的讀寫。官網
資料庫
簡化資料庫交互的相關工具。
Apache Phoenix:HBase針對低延時應用程序的高性能關系資料庫層。官網
Crate:實現了數據同步、分片、縮放、復制的分布式數據存儲。除此之外還可以使用基於SQL的語法跨集群查詢。官網
Flyway:簡單的資料庫遷移工具。官網
H2:小型SQL資料庫,以可以作為內存資料庫使用著稱。官網
HikariCP:高性能JDBC連接工具。官網
JDBI:便捷的JDBC抽象。官網
Protobuf:Google數據交換格式。官網
SBE:簡單二進制編碼,是最快速的消息格式之一。官網
Wire:整潔輕量級協議緩存。官網
幫實現依賴翻轉範式的開發庫。官網
Apache DeltaSpike:CDI擴展框架。官網
Dagger2:編譯時注入框架,不需要使用反射。官網
Guice:可以匹敵Dagger的輕量級注入框架。官網
HK2:輕量級動態依賴注入框架。官網
開發流程增強工具
從最基本的層面增強開發流程。
ADT4J:針對代數數據類型的JSR-269代碼生成器。官網
AspectJ:面向切面編程(AOP)的無縫擴展。官網
Auto:源代碼生成器集合。官網
DCEVM:通過修改JVM在運行時支持對已載入的類進行無限次重定義。官網
HotswapAgent:支持無限次重定義運行時類與資源。官網
Immutables:類似Scala的條件類。官網
JHipster:基於Spring Boot與AngularJS應用程序的Yeoman源代碼生成器。官網
JRebel:無需重新部署,可以即時重新載入代碼與配置的商業軟體。官網
Lombok:減少冗餘的代碼生成器。官網
Spring Loaded:類重載代理。官網
vert.x:多語言事件驅動應用框架。官網
分布式應用
用來編寫分布式容錯應用的開發庫和框架。
Akka:用來編寫分布式容錯並發事件驅動應用程序的工具和運行時。官網
Apache Storm:實時計算系統。官網
Apache ZooKeeper:針對大型分布式系統的協調服務,支持分布式配置、同步和名稱注冊。官網
Hazelcast:高可擴展內存數據網格。官網
Hystrix:提供延遲和容錯。官網
JGroups:提供可靠的消息傳遞和集群創建的工具。官網
Orbit:支持虛擬角色(Actor),在傳統角色的基礎上增加了另外一層抽象。官網
Quasar:為JVM提供輕量級線程和角色。官網
分布式資料庫
對應用程序而言,在分布式系統中的資料庫看起來就像是只有一個數據源。
Apache Cassandra:列式資料庫,可用性高且沒有單點故障。官網
Apache HBase:針對大數據的Hadoop資料庫。官網
Druid:實時和歷史OLAP數據存儲,在聚集查詢和近似查詢方面表現不俗。官網
Infinispan:針對緩存的高並發鍵值對數據存儲。官網
發布
以本機格式發布應用程序的工具。
Bintray:發布二進制文件版本控制工具。可以於Maven或Gradle一起配合使用。提供開源免費版本和幾種商業收費版本。官網
Central Repository:最大的二進制組件倉庫,面向開源社區提供免費服務。Apache Maven默認使用Central官網Repository,也可以在所有其他構建工具中使用。
IzPack:為跨平台部署建立創作工具(Authoring Tool)。官網
JitPack:打包GitHub倉庫的便捷工具。可根據需要構建Maven、Gradle項目,發布可立即使用的組件。官網
Launch4j:將JAR包裝為輕量級本機Windows可執行程序。官網
Nexus:支持代理和緩存功能的二進制管理工具。官網
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發布文件。官網
文檔處理工具
處理Office文檔的開發庫。
Apache POI:支持OOXML規范(XLSX、DOCX、PPTX)以及OLE2規范(XLS、DOC、PPT)。官網
documents4j:使用第三方轉換器進行文檔格式轉換,轉成類似MS Word這樣的格式。官網
jOpenDocument:處理OpenDocument格式(由Sun公司提出基於XML的文檔格式)。官網
函數式編程
函數式編程支持庫。
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網
Fugue:Guava的函數式編程擴展。官網
Functional Java:實現了多種基礎和高級編程抽象,用來輔助面向組合開發(composition-oriented development)。官網
Javaslang:一個函數式組件庫,提供持久化數據類型和函數式控制結構。官網
jOOλ:旨在填補Java 8 lambda差距的擴展,提供了眾多缺失的類型和一組豐富的順序流API。官網
游戲開發
游戲開發框架。
jMonkeyEngine:現代3D游戲開發引擎。官網
libGDX:全面的跨平台高級框架。官網
LWJGL:對OpenGL/CL/AL等技術進行抽象的健壯框架。官網
GUI
現代圖形化用戶界面開發庫。
JavaFX:Swing的後繼者。官網
Scene Builder:開發JavaFX應用的可視化布局工具。官網
高性能計算
涵蓋了從集合到特定開發庫的高性能計算相關工具。
Agrona:高性能應用中常見的數據結構和工具方法。官網
Disruptor:線程間消息傳遞開發庫。官網
fastutil:快速緊湊的特定類型集合(Collection)。官網
GS Collections:受Smalltalk啟發的集合框架。官網
HPPC:基礎類型集合。官網
Javolution:實時和嵌入式系統的開發庫。官網
JCTools:JDK中缺失的並發工具。官網
Koloboke:Hash set和hash map。官網
Trove:基礎類型集合。官網
High-scale-bli:Cliff Click 個人開發的高性能並發庫官網
IDE
簡化開發的集成開發環境。
Eclipse:老牌開源項目,支持多種插件和編程語言。官網
IntelliJ IDEA:支持眾多JVM語言,是安卓開發者好的選擇。商業版主要針對企業客戶。官網
NetBeans:為多種技術提供集成化支持,包括Java SE、Java EE、資料庫訪問、HTML5
Imgscalr:純Java 2D實現,簡單、高效、支持硬體加速的圖像縮放開發庫。官網
Picasso:安卓圖片下載和圖片緩存開發庫。官網
Thumbnailator:Thumbnailator是一個高質量Java縮略圖開發庫。官網
ZXing:支持多種格式的一維、二維條形碼圖片處理開發庫。官網
im4java: 基於ImageMagick或GraphicsMagick命令行的圖片處理開發庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網
Apache Batik:在Java應用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴展自定義的SVG標簽。官網
JSON
簡化JSON處理的開發庫。
Genson:強大且易於使用的Java到JSON轉換開發庫。官網
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調用。官網
Jackson:與GSON類似,在頻繁使用時性能更佳。官網
LoganSquare:基於Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網
JVM與JDK
目前的JVM和JDK實現。
JDK 9:JDK 9的早期訪問版本。官網
OpenJDK:JDK開源實現。官網
基於JVM的語言
除Java外,可以用來編寫JVM應用程序的編程語言。
Scala:融合了面向對象和函數式編程思想的靜態類型編程語言。官網
Groovy:類型可選(Optionally typed)的動態語言,支持靜態類型和靜態編譯。目前是一個Apache孵化器項目。官網
Clojure:可看做現代版Lisp的動態類型語言。官網
Ceylon:RedHat開發的面向對象靜態類型編程語言。官網
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態類型編程語言。官網
Xtend:一種靜態編程語言,能夠將其代碼轉換為簡潔高效的Java代碼,並基於JVM運行。官網
日誌
記錄應用程序行為日誌的開發庫。
Apache Log4j 2:使用強大的插件和配置架構進行完全重寫。官網
kibana:分析及可視化日誌文件。官網
Logback:強健的日期開發庫,通過Groovy提供很多有趣的選項。官網
logstash:日誌文件管理工具。官網
Metrics:通過JMX或HTTP發布參數,並且支持存儲到資料庫。官網
SLF4J:日誌抽象層,需要與具體的實現配合使用。官網
機器學習
提供具體統計演算法的工具。其演算法可從數據中學習。
Apache Flink:快速、可靠的大規模數據處理引擎。官網
Apache Hadoop:在商用硬體集群上用來進行大規模數據存儲的開源軟體框架。官網
Apache Mahout:專注協同過濾、聚類和分類的可擴展演算法。官網
Apache Spark:開源數據分析集群計算框架。官網
DeepDive:從非結構化數據建立結構化信息並集成到已有資料庫的工具。官網
Deeplearning4j:分布式多線程深度學習開發庫。官網
H2O:用作大數據統計的分析引擎。官網
Weka:用作數據挖掘的演算法集合,包括從預處理到可視化的各個層次。官網
QuickML:高效機器學習庫。官網、GitHub
消息傳遞
在客戶端之間進行消息傳遞,確保協議獨立性的工具。
Aeron:高效可擴展的單播、多播消息傳遞工具。官網
Apache ActiveMQ:實現JMS的開源消息代理(broker),可將同步通訊轉為非同步通訊。官網
Apache Camel:通過企業級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網
Apache Kafka:高吞吐量分布式消息系統。官網
Hermes:快速、可靠的消息代理(Broker),基於Kafka構建。官網
JBoss HornetQ:清晰、准確、模塊化,可以方便嵌入的消息工具。官網
JeroMQ:ZeroMQ的純Java實現。官網
Smack:跨平台XMPP客戶端函數庫。官網
Openfire:是開源的、基於XMPP、採用Java編程語言開發的實時協作伺服器。 Openfire安裝和使用都非常簡單,並可利用Web界面進行管理。官網GitHub
Spark:是一個開源,跨平台IM客戶端。它的特性支持集組聊天,電話集成和強大安全性能。如果企業內部部署IM使用Openfire+Spark是最佳的組合。官網GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 伺服器。無需其他第三方庫支持,可以處理非常高的復雜和大量的用戶數,可以根據需要進行水平擴展。官網
雜項
未分類其它資源。
Design Patterns:實現並解釋了最常見的設計模式。官網
Jimfs:內存文件系統。官網
Lanterna:類似curses的簡單console文本GUI函數庫。官網
LightAdmin:可插入式CRUD UI函數庫,可用來快速應用開發。官網
OpenRefine:用來處理混亂數據的工具,包括清理、轉換、使用Web Service進行擴展並將其關聯到資料庫。官網
RoboVM:Java編寫原生iOS應用。官網
Quartz:強大的任務調度庫.官網
應用監控工具
監控生產環境中應用程序的工具。
AppDynamics:性能監測商業工具。官網
JavaMelody:性能監測和分析工具。官網
Kamon:Kamon用來監測在JVM上運行的應用程序。官網
New Relic:性能監測商業工具。官網
SPM:支持對JVM應用程序進行分布式事務追蹤的性能監測商業工具。官網
Takipi:產品運行時錯誤監測及調試商業工具。官網
原生開發庫
用來進行特定平台開發的原生開發庫。
JNA:不使用JNI就可以使用原生開發庫。此外,還為常見系統函數提供了介面。官網
自然語言處理
用來專門處理文本的函數庫。
Apache OpenNLP:處理類似分詞等常見任務的工具。官網
CoreNLP:斯坦佛CoreNLP提供了一組基礎工具,可以處理類似標簽、實體名識別和情感分析這樣的任務。官網
LingPipe:一組可以處理各種任務的工具集,支持POS標簽、情感分析等。官網
Mallet:統計學自然語言處理、文檔分類、聚類、主題建模等。官網
網路
網路編程函數庫。
Async Http Client:非同步HTTP和WebSocket客戶端函數庫。官網
Grizzly:NIO框架,在Glassfish中作為網路層使用。官網
Netty:構建高性能網路應用程序開發框架。官網
OkHttp:一個Android和Java應用的HTTP+SPDY客戶端。官網
Undertow:基於NIO實現了阻塞和非阻塞API的Web伺服器,在WildFly中作為網路層使用。官網
ORM
處理對象持久化的API。
Ebean:支持快速數據訪問和編碼的ORM框架。官網
EclipseLink:支持許多持久化標准,JPA、JAXB、JCA和SDO。官網
Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術社區非常活躍。官網
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網
OrmLite:輕量級開發包,免除了其它ORM產品中的復雜性和開銷。官網
Nutz:另一個SSH。官網,Github
JFinal:JAVA WEB + ORM框架。官網,Github
用來幫助創建PDF文件的資源。
Apache FOP:從XSL-FO創建PDF。官網
Apache PDFBox:用來創建和操作PDF的工具集。官網
DynamicReports:JasperReports的精簡版。官網
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網
iText:一個易於使用的PDF函數庫,用來編程創建PDF文件。注意,用於商業用途時需要許可證。官網
JasperReports:一個復雜的報表引擎。官網
性能分析
性能分析、性能剖析及基準測試工具。
jHiccup:提供平台中JVM暫停的日誌和記錄。官網
JMH:JVM基準測試工具。官網
JProfiler:商業分析器。官網
LatencyUtils:測量和報告延遲的工具。官網
VisualVM:對運行中的應用程序信息提供了可視化界面。官網
YourKit Java Profiler:商業分析器。官網
響應式開發庫
用來開發響應式應用程序的開發庫。
Reactive Streams:非同步流處理標准,支持非阻塞式反向壓力(backpressure)。官網
Reactor:構建響應式快速數據(fast-data)應用程序的開發庫。官網
RxJava:通過JVM可觀察序列(observable sequence)構建非同步和基於事件的程序。官網
REST框架
用來創建RESTful 服務的框架。
Dropwizard:偏向於自己使用的Web框架。用來構建Web應用程序,使用了Jetty、Jackson、Jersey和Metrics。官網
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發的HTTP客戶端連接器(binder)。官網
Jersey:JAX-RS參考實現。官網
RESTEasy:經過JAX-RS規范完全認證的可移植實現。官網
RestExpress:一個Java類型安全的REST客戶端。官網
RestX:基於註解處理和編譯時源碼生成的框架。官網
Retrofit:類型安全的REST客戶端。官網
Spark:受到Sinatra啟發的Java REST框架。官網
Swagger:Swagger是一個規范且完整的框架,提供描述、生產、消費和可視化RESTful Web Service。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
科學計算與分析
用於科學計算和分析的函數庫。
DataMelt:用於科學計算、數據分析及數據可視化的開發環境。官網
JGraphT:支持數學圖論對象和演算法的圖形庫。官網
JScience:用來進行科學測量和單位的一組類。官網
搜索引擎
文檔索引引擎,用於搜索和分析。
Apache Solr:一個完全的企業搜索引擎。為高吞吐量通信進行了優化。官網
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web介面和無schema的JSON文檔。官網
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網
安全
用於處理安全、認證、授權或會話管理的函數庫。
Apache Shiro:執行認證、授權、加密和會話管理。官網
Bouncy Castle,涵蓋了從基礎的幫助函數到PGP/SMIME操作。官網:多途加密開發庫。支持JCA提供者(JCA provider)
Cryptomator:在雲上進行客戶端跨平台透明加密。官網
Keycloak:為瀏覽器應用和RESTful Web Service集成SSO和IDM。目前還處於beta版本,但是看起來非常有前途。官網
PicketLink:PicketLink是一個針對Java應用進行安全和身份認證管理的大型項目(Umbrella Project)。官網
序列化
用來高效處理序列化的函數庫。
FlatBuffers:高效利用內存的序列化函數庫,無需解包和解析即可高效訪問序列化數據。官網
Kryo:快速、高效的對象圖形序列化框架。官網
FST:提供兼容JDK的高性能對象圖形序列化。官網
MessagePack:一種高效的二進制序列化格式。官網
應用伺服器
用來部署應用程序的伺服器。
Apache Tomcat:針對Servlet和JSP的應用伺服器,健壯性好且適用性強。官網
Apache TomEE:Tomcat加Java EE。官網
Jetty:輕量級、小巧的應用伺服器,通常會嵌入到項目中。官網
WebSphere Liberty:輕量級、模塊化應用伺服器,由IBM開發。官網
WildFly:之前被稱作JBoss,由Red Hat開發。支持很多Java EE功能。官網
模板引擎
在模板中替換表達式的工具。
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關系。官網
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。官網
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網
測試
測試內容從對象到介面,涵蓋性能測試和基準測試工具。
Apache JMeter:功能性測試和性能評測。官網
Arquillian:集成測試和功能行測試平台,集成Java EE容器。官網
AssertJ:支持流式斷言提高測試的可讀性。官網
Awaitility:用來同步非同步操作的DSL。官網
Cucumber:BDD測試框架。官網
Gatling:設計為易於使用、可維護的和高性能負載測試工具。官網
Hamcrest:可用來靈活創建意圖(intent)表達式的匹配器。官網
JMockit:用來模擬靜態、final方法等。官網
JUnit:通用測試框架。官網
Mockito:在自動化單元測試中創建測試對象,為TDD或BDD提供支持。官網
PowerMock: 支持模擬靜態方法、構造函數、final類和方法、私有方法以及移除靜態初始化器的模擬工具。官網
REST Assured:為REST/HTTP服務提供方便測試的Java DSL。官網
Selenide:為Selenium提供精準的周邊API,用來編寫穩定且可讀的UI測試。官網
Selenium:為Web應用程序提供可移植軟體測試框架。官網
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網
Truth:Google的斷言和命題(proposition)框架。官網
Unitils:模塊化測試函數庫,支持單元測試和集成測試。官網
WireMock:Web Service測試樁(Stub)和模擬函數。官網
通用工具庫
通用工具類函數庫。
Apache Commons:提供各種用途的函數,比如配置、驗證、集合、文件上傳或XML處理等。官網
args4j:命令行參數解析器。官網
CRaSH:為運行進行提供CLI。官網
Gephi:可視化跨平台網路圖形化操作程序。官網
Guava:集合、緩存、支持基本類型、並發函數庫、通用註解、字元串處理、I/O等。官網
JADE:構建、調試多租戶系統的框架和環境。官網
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網
JCommander:命令行參數解析器。官網
Protégé:提供存在論(ontology)編輯器以及構建知識系統的框架。官網
網路爬蟲
用於分析網站內容的函數庫。
Apache Nutch:可用於生產環境的高度可擴展、可伸縮的網路爬蟲。官網
Crawler4j:簡單的輕量級網路爬蟲。官網
JSoup:刮取、解析、操作和清理HTML。官網
Web框架
用於處理Web應用程序不同層次間通訊的框架。
Apache Tapestry:基於組件的框架,使用Java創建動態、強健的、高度可擴展的Web應用程序。官網
Apache Wicket:基於組件的Web應用框架,與Tapestry類似帶有狀態顯示GUI。官網
Google Web Toolkit:一組Web開發工具集,包含在客戶端將Java代碼轉為JavaScript的編譯器、XML解析器、RCP官網API、JUnit集成、國際化支持和GUI控制項。
Grails:Groovy框架,旨在提供一個高效開發環境,使用約定而非配置、沒有XML並支持混入(mixin)。官網
Ninja:Java全棧Web開發框架。非常穩固、快速和高效。官網
Pippo:小型、高度模塊化的類Sinatra框架。官網
Play:使用約定而非配置,支持代碼熱載入並在瀏覽器中顯示錯誤。官網
PrimeFaces:JSF框架,提供免費和帶支持的商業版本。包括若干前端組件。官網
Ratpack:一組Java開發函數庫,用於構建快速、高效、可擴展且測試完備的HTTP應用程序。官網
Spring Boot:微框架,簡化了Spring新程序的開發過程。官網
Spring:旨在簡化Java EE的開發過程,提供依賴注入相關組件並支持面向切面編程。官網
Vaadin:基於GWT構建的事件驅動框架。使用服務端架構,客戶端使用Ajax。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
業務流程管理套件
流程驅動的軟體系統構建。
jBPM:非常靈活的業務流程管理框架,致力於構建開發與業務分析人員之間的橋梁。官網
Activity:輕量級工作流和業務流程管理框架。官網github
資源
社區