java最小代碼框架 java代碼結(jié)構(gòu)設(shè)計(jì)

java框架有哪些常用框架

十大常用框架:

黎川網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

一、SpringMVC

二、Spring

三、Mybatis

四、Dubbo

五、Maven

六、RabbitMQ

七、Log4j

八、Ehcache

九、Redis

十、Shiro

延展閱讀:

一、SpringMVC

Spring Web MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦,基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開發(fā),Spring Web MVC也是要簡(jiǎn)化我們?nèi)粘eb開發(fā)的。

模型(Model )封裝了應(yīng)用程序的數(shù)據(jù)和一般他們會(huì)組成的POJO。

視圖(View)是負(fù)責(zé)呈現(xiàn)模型數(shù)據(jù)和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。

控制器(Controller )負(fù)責(zé)處理用戶的請(qǐng)求,并建立適當(dāng)?shù)哪P?,并把它傳遞給視圖渲染。

Spring的web模型 - 視圖 - 控制器(MVC)框架是圍繞著處理所有的HTTP請(qǐng)求和響應(yīng)的DispatcherServlet的設(shè)計(jì)。

Spring Web MVC處理請(qǐng)求的流程

具體執(zhí)行步驟如下:

1、 首先用戶發(fā)送請(qǐng)求————前端控制器,前端控制器根據(jù)請(qǐng)求信息(如URL)來(lái)決定選擇哪一個(gè)頁(yè)面控制器進(jìn)行處理并把請(qǐng)求委托給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;

2、 頁(yè)面控制器接收到請(qǐng)求后,進(jìn)行功能處理,首先需要收集和綁定請(qǐng)求參數(shù)到一個(gè)對(duì)象,這個(gè)對(duì)象在Spring Web MVC中叫命令對(duì)象,并進(jìn)行驗(yàn)證,然后將命令對(duì)象委托給業(yè)務(wù)對(duì)象進(jìn)行處理;處理完畢后返回一個(gè)ModelAndView(模型數(shù)據(jù)和邏輯視圖名);圖2-1中的3、4、5步驟;

3、 前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖2-1中的步驟6、7;

4、 前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖2-1中的步驟8;至此整個(gè)結(jié)束。

二、Spring

2.1、IOC容器:

IOC容器就是具有依賴注入功能的容器,IOC容器負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象間的依賴。應(yīng)用程序無(wú)需直接在代碼中new相關(guān)的對(duì)象,應(yīng)用程序由IOC容器進(jìn)行組裝。在Spring中BeanFactory是IOC容器的實(shí)際代表者。

2.2、AOP:

簡(jiǎn)單地說(shuō),就是將那些與業(yè)務(wù)無(wú)關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯或責(zé)任封裝起來(lái),便于減少系統(tǒng)的重復(fù)代碼,降低模塊間的耦合度,并有利于未來(lái)的可操作性和可維護(hù)性。AOP代表的是一個(gè)橫向的關(guān)系

AOP用來(lái)封裝橫切關(guān)注點(diǎn),具體可以在下面的場(chǎng)景中使用:

Authentication 權(quán)限?

Caching 緩存?

Context passing 內(nèi)容傳遞?

Error handling 錯(cuò)誤處理?

Lazy loading 懶加載?

Debugging調(diào)試?

logging, tracing, profiling and monitoring 記錄跟蹤 優(yōu)化 校準(zhǔn)?

Performance optimization 性能優(yōu)化?

Persistence持久化?

Resource pooling 資源池?

Synchronization 同步?

Transactions 事務(wù)

三、Mybatis

MyBatis 是支持普通 SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡(jiǎn)單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。

總體流程:

(1)加載配置并初始化?

觸發(fā)條件:加載配置文件?

將SQL的配置信息加載成為一個(gè)個(gè)MappedStatement對(duì)象(包括了傳入?yún)?shù)映射配置、執(zhí)行的SQL語(yǔ)句、結(jié)果映射配置),存儲(chǔ)在內(nèi)存中。

(2)接收調(diào)用請(qǐng)求?

觸發(fā)條件:調(diào)用Mybatis提供的API?

傳入?yún)?shù):為SQL的ID和傳入?yún)?shù)對(duì)象?

處理過(guò)程:將請(qǐng)求傳遞給下層的請(qǐng)求處理層進(jìn)行處理。

(3)處理操作請(qǐng)求 觸發(fā)條件:API接口層傳遞請(qǐng)求過(guò)來(lái)?

傳入?yún)?shù):為SQL的ID和傳入?yún)?shù)對(duì)象

處理過(guò)程:

(A)根據(jù)SQL的ID查找對(duì)應(yīng)的MappedStatement對(duì)象。

(B)根據(jù)傳入?yún)?shù)對(duì)象解析MappedStatement對(duì)象,得到最終要執(zhí)行的SQL和執(zhí)行傳入?yún)?shù)。

(C)獲取數(shù)據(jù)庫(kù)連接,根據(jù)得到的最終SQL語(yǔ)句和執(zhí)行傳入?yún)?shù)到數(shù)據(jù)庫(kù)執(zhí)行,并得到執(zhí)行結(jié)果。

(D)根據(jù)MappedStatement對(duì)象中的結(jié)果映射配置對(duì)得到的執(zhí)行結(jié)果進(jìn)行轉(zhuǎn)換處理,并得到最終的處理結(jié)果。

(E)釋放連接資源。

(4)返回處理結(jié)果將最終的處理結(jié)果返回。

MyBatis 最強(qiáng)大的特性之一就是它的動(dòng)態(tài)語(yǔ)句功能。如果您以前有使用JDBC或者類似框架的經(jīng)歷,您就會(huì)明白把SQL語(yǔ)句條件連接在一起是多么的痛苦,要確保不能忘記空格或者不要在columns列后面省略一個(gè)逗號(hào)等。動(dòng)態(tài)語(yǔ)句能夠完全解決掉這些痛苦。

四、Dubbo

Dubbo是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC(遠(yuǎn)程過(guò)程調(diào)用協(xié)議)遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。簡(jiǎn)單的說(shuō),dubbo就是個(gè)服務(wù)框架,如果沒(méi)有分布式的需求,其實(shí)是不需要用的,只有在分布式的時(shí)候,才有dubbo這樣的分布式服務(wù)框架的需求,并且本質(zhì)上是個(gè)服務(wù)調(diào)用的東東,說(shuō)白了就是個(gè)遠(yuǎn)程服務(wù)調(diào)用的分布式框架。

1、透明化的遠(yuǎn)程方法調(diào)用,就像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,只需簡(jiǎn)單配置,沒(méi)有任何API侵入。

2、軟負(fù)載均衡及容錯(cuò)機(jī)制,可在內(nèi)網(wǎng)替代F5等硬件負(fù)載均衡器,降低成本,減少單點(diǎn)。

3、 服務(wù)自動(dòng)注冊(cè)與發(fā)現(xiàn),不再需要寫死服務(wù)提供方地址,注冊(cè)中心基于接口名查詢服務(wù)提供者的IP地址,并且能夠平滑添加或刪除服務(wù)提供者。

節(jié)點(diǎn)角色說(shuō)明:?

Provider: 暴露服務(wù)的服務(wù)提供方。?

Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方。?

Registry: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心。?

Monitor: 統(tǒng)計(jì)服務(wù)的調(diào)用次調(diào)和調(diào)用時(shí)間的監(jiān)控中心。?

Container: 服務(wù)運(yùn)行容器。

五、Maven

Maven這個(gè)個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具,越來(lái)越多的開發(fā)人員使用它來(lái)管理項(xiàng)目中的jar包。但是對(duì)于我們程序員來(lái)說(shuō),我們最關(guān)心的是它的項(xiàng)目構(gòu)建功能。

六、RabbitMQ

消息隊(duì)列一般是在項(xiàng)目中,將一些無(wú)需即時(shí)返回且耗時(shí)的操作提取出來(lái),進(jìn)行了異步處理,而這種異步處理的方式大大的節(jié)省了服務(wù)器的請(qǐng)求響應(yīng)時(shí)間,從而提高了系統(tǒng)的吞吐量。

RabbitMQ是用Erlang實(shí)現(xiàn)的一個(gè)高并發(fā)高可靠AMQP消息隊(duì)列服務(wù)器。

Erlang是一門動(dòng)態(tài)類型的函數(shù)式編程語(yǔ)言。對(duì)應(yīng)到Erlang里,每個(gè)Actor對(duì)應(yīng)著一個(gè)Erlang進(jìn)程,進(jìn)程之間通過(guò)消息傳遞進(jìn)行通信。相比共享內(nèi)存,進(jìn)程間通過(guò)消息傳遞來(lái)通信帶來(lái)的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機(jī)底層實(shí)現(xiàn)中的鎖應(yīng)用)。

AMQP(Advanced Message Queue Protocol)定義了一種消息系統(tǒng)規(guī)范。這個(gè)規(guī)范描述了在一個(gè)分布式的系統(tǒng)中各個(gè)子系統(tǒng)如何通過(guò)消息交互。

七、Log4j

日志記錄的優(yōu)先級(jí),分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級(jí)別。

八、Ehcache

EhCache 是一個(gè)純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點(diǎn),是Hibernate中默認(rèn)的CacheProvider。Ehcache是一種廣泛使用的開源Java分布式緩存。主要面向通用緩存,Java EE和輕量級(jí)容器。它具有內(nèi)存和磁盤存儲(chǔ),緩存加載器,緩存擴(kuò)展,緩存異常處理程序,一個(gè)gzip緩存servlet過(guò)濾器,支持REST和SOAP api等特點(diǎn)。

優(yōu)點(diǎn):?

1、 快速?

2、 簡(jiǎn)單?

3、 多種緩存策略?

4、緩存數(shù)據(jù)有兩級(jí):內(nèi)存和磁盤,因此無(wú)需擔(dān)心容量問(wèn)題?

5、 緩存數(shù)據(jù)會(huì)在虛擬機(jī)重啟的過(guò)程中寫入磁盤?

6、可以通過(guò)RMI、可插入API等方式進(jìn)行分布式緩存?

7、 具有緩存和緩存管理器的偵聽接口?

8、支持多緩存管理器實(shí)例,以及一個(gè)實(shí)例的多個(gè)緩存區(qū)域?

9、提供Hibernate的緩存實(shí)現(xiàn)

缺點(diǎn):?

1、使用磁盤Cache的時(shí)候非常占用磁盤空間:這是因?yàn)镈iskCache的算法簡(jiǎn)單,該算法簡(jiǎn)單也導(dǎo)致Cache的效率非常高。它只是對(duì)元素直接追加存儲(chǔ)。因此搜索元素的時(shí)候非常的快。如果使用DiskCache的,在很頻繁的應(yīng)用中,很快磁盤會(huì)滿。

2、 不能保證數(shù)據(jù)的安全:當(dāng)突然kill掉java的時(shí)候,可能會(huì)產(chǎn)生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對(duì)于Cache數(shù)據(jù)需要保存的時(shí)候可能不利。當(dāng)然,Cache只是簡(jiǎn)單的加速,而不能保證數(shù)據(jù)的安全。如果想保證數(shù)據(jù)的存儲(chǔ)安全,可以使用Bekeley DB Java Edition版本。這是個(gè)嵌入式數(shù)據(jù)庫(kù)。可以確保存儲(chǔ)安全和空間的利用率。

九、Redis

redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。

Redis數(shù)據(jù)庫(kù)完全在內(nèi)存中,使用磁盤僅用于持久性。相比許多鍵值數(shù)據(jù)存儲(chǔ),Redis擁有一套較為豐富的數(shù)據(jù)類型。Redis可以將數(shù)據(jù)復(fù)制到任意數(shù)量的從服務(wù)器。

1.2、Redis優(yōu)點(diǎn):

(1)異??焖伲篟edis的速度非???,每秒能執(zhí)行約11萬(wàn)集合,每秒約81000+條記錄。

(2)支持豐富的數(shù)據(jù)類型:Redis支持最大多數(shù)開發(fā)人員已經(jīng)知道像列表,集合,有序集合,散列數(shù)據(jù)類型。這使得它非常容易解決各種各樣的問(wèn)題,因?yàn)槲覀冎滥男﹩?wèn)題是可以處理通過(guò)它的數(shù)據(jù)類型更好。

(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個(gè)客戶端同時(shí)訪問(wèn)的Redis服務(wù)器將獲得更新后的值。

(4)多功能實(shí)用工具:Redis是一個(gè)多實(shí)用的工具,可以在多個(gè)用例如緩存,消息,隊(duì)列使用(Redis原生支持發(fā)布/訂閱),任何短暫的數(shù)據(jù),應(yīng)用程序,如Web應(yīng)用程序會(huì)話,網(wǎng)頁(yè)命中計(jì)數(shù)等。

1.3、Redis缺點(diǎn):?

(1)單線程?

(2)耗內(nèi)存

十、Shiro

Apache Shiro是Java的一個(gè)安全框架,旨在簡(jiǎn)化身份驗(yàn)證和授權(quán)。Shiro在JavaSE和JavaEE項(xiàng)目中都可以使用。它主要用來(lái)處理身份認(rèn)證,授權(quán),企業(yè)會(huì)話管理和加密等。Shiro的具體功能點(diǎn)如下:

(1)身份認(rèn)證/登錄,驗(yàn)證用戶是不是擁有相應(yīng)的身份;

(2)授權(quán),即權(quán)限驗(yàn)證,驗(yàn)證某個(gè)已認(rèn)證的用戶是否擁有某個(gè)權(quán)限;即判斷用戶是否能做事情,常見的如:驗(yàn)證某個(gè)用戶是否擁有某個(gè)角色。或者細(xì)粒度的驗(yàn)證某個(gè)用戶對(duì)某個(gè)資源是否具有某個(gè)權(quán)限;

(3)會(huì)話管理,即用戶登錄后就是一次會(huì)話,在沒(méi)有退出之前,它的所有信息都在會(huì)話中;會(huì)話可以是普通JavaSE環(huán)境的,也可以是如Web環(huán)境的;

(4)加密,保護(hù)數(shù)據(jù)的安全性,如密碼加密存儲(chǔ)到數(shù)據(jù)庫(kù),而不是明文存儲(chǔ);

(5)Web支持,可以非常容易的集成到Web環(huán)境;?

Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權(quán)限不必每次去查,這樣可以提高效率;

(6)shiro支持多線程應(yīng)用的并發(fā)驗(yàn)證,即如在一個(gè)線程中開啟另一個(gè)線程,能把權(quán)限自動(dòng)傳播過(guò)去;

(7)提供測(cè)試支持;

(8)允許一個(gè)用戶假裝為另一個(gè)用戶(如果他們?cè)试S)的身份進(jìn)行訪問(wèn);

(9)記住我,這個(gè)是非常常見的功能,即一次登錄后,下次再來(lái)的話不用登錄了。

作為一個(gè)JAVA程序員, 應(yīng)該掌握哪些知識(shí), 目前, 比較流行的java開發(fā)框架有哪些,

java基礎(chǔ),三大主流數(shù)據(jù)庫(kù)mysql,orcale,sql server;然后是j2ee的相關(guān)知識(shí),也就是java開發(fā)框架。

Spring Framework 【Java 開源JEE框架】

Spring是一個(gè)解決了許多在J2EE開發(fā)中常見的問(wèn)題的強(qiáng)大框架。

Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的

Inversion of

Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無(wú)二的。

Spring提供了唯一的數(shù)據(jù)訪問(wèn)抽象,包括簡(jiǎn)單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。Spring的數(shù)據(jù)訪問(wèn)架構(gòu)還集成了

Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者

JDBC事務(wù)提供一個(gè)一致的編程模型。Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語(yǔ)言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)

--如果你需要--還能實(shí)現(xiàn)你自己的aspects。這個(gè)框架足夠強(qiáng)大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。

Spring還提供了可以和IoC容器集成的強(qiáng)大而靈活的MVC Web框架?!維pringIDE:Eclipse平臺(tái)下一個(gè)輔助開發(fā)插件】.

WebWork 【Java開源Web開發(fā)框架】

WebWork是由OpenSymphony組織開發(fā)的,致力于組件化和代碼重用的拉出式MVC模式J2EE

Web框架。WebWork目前最新版本是2.1,現(xiàn)在的WebWork2.x前身是Rickard

Oberg開發(fā)的WebWork,但現(xiàn)在WebWork已經(jīng)被拆分成了Xwork1和WebWork2兩個(gè)項(xiàng)目。

Xwork簡(jiǎn)潔、靈活功能強(qiáng)大,它是一個(gè)標(biāo)準(zhǔn)的Command模式實(shí)現(xiàn),并且完全從web層脫離出來(lái)。

Xwork提供了很多核心功能:前端攔截機(jī)(interceptor),運(yùn)行時(shí)表單屬性驗(yàn)證,類型轉(zhuǎn)換,強(qiáng)大的表達(dá)式語(yǔ)言(OGNL – the

Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。

WebWork2建立在Xwork之上,處理HTTP的響應(yīng)和請(qǐng)求。WebWork2使用ServletDispatcher將HTTP請(qǐng)求的變成

Action(業(yè)務(wù)層Action類),

session(會(huì)話)application(應(yīng)用程序)范圍的映射,request請(qǐng)求參數(shù)映射。WebWork2支持多視圖表示,視圖部分可以使用

JSP, Velocity, FreeMarker,

JasperReports,XML等。在WebWork2.2中添加了對(duì)AJAX的支持,這支持是構(gòu)建在DWR與Dojo這兩個(gè)框架的基礎(chǔ)之上.

【EclipseWork:用于WebWork輔助開發(fā)的一個(gè)Eclipse插件】

Struts 【Java開源Web開發(fā)框架】

Struts是一個(gè)基于Sun

J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來(lái)實(shí)現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡(jiǎn)單易用,敏捷迅速,在過(guò)去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message

resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說(shuō)Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架?!維trutsIDE:用于Struts輔助開發(fā)的一個(gè)Eclipse插件】

Hibernate 【Java開源持久層框架】

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。

Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Eclipse平臺(tái)下的Hibernate輔助開發(fā)工具:【Hibernate

Synchronizer】【MiddlegenIDE】

Quartz 【Java開源調(diào)度框架】

Quartz是OpenSymphony開源組織在Job

scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz可以用來(lái)創(chuàng)建簡(jiǎn)單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬(wàn)個(gè)Jobs這樣復(fù)雜的日程序表。Jobs可以做成標(biāo)準(zhǔn)的Java組件或

EJBs。Quartz的最新版本為Quartz 1.5.0。

Velocity 【Java開源模板引擎】

Velocity是一個(gè)基于java的模板引擎(template engine)。它允許任何人僅僅簡(jiǎn)單的使用模板語(yǔ)言(template

language)來(lái)引用由java代碼定義的對(duì)象。當(dāng)Velocity應(yīng)用于web開發(fā)時(shí),界面設(shè)計(jì)人員可以和java程序開發(fā)人員同步開發(fā)一個(gè)遵循MVC架構(gòu)的web站點(diǎn),也就是說(shuō),頁(yè)面設(shè)計(jì)人員可以只關(guān)注頁(yè)面的顯示效果,而由java程序開發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。Velocity將java代碼從web頁(yè)面中分離出來(lái),這樣為web站點(diǎn)的長(zhǎng)期維護(hù)提供了便利,同時(shí)也為我們?cè)贘SP和PHP之外又提供了一種可選的方案。

Velocity的能力遠(yuǎn)不止web站點(diǎn)開發(fā)這個(gè)領(lǐng)域,例如,它可以從模板(template)產(chǎn)生SQL和PostScript、XML,它也可以被當(dāng)作一個(gè)獨(dú)立工具來(lái)產(chǎn)生源代碼和報(bào)告,或者作為其他系統(tǒng)的集成組件使用。Velocity也可以為Turbine

web開發(fā)架構(gòu)提供模板服務(wù)(template

service)。Velocity+Turbine提供一個(gè)模板服務(wù)的方式允許一個(gè)web應(yīng)用以一個(gè)真正的MVC模型進(jìn)行開發(fā)。【VeloEclipse

:Velocity在Eclipse平臺(tái)下的一個(gè)輔助開發(fā)插件】

IBATIS 【Java開源持久層框架】

使用ibatis 提供的ORM機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的Java對(duì)象, 這一層與通過(guò)Hibernate 實(shí)現(xiàn)ORM

而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,Hibernate 會(huì)自動(dòng)生成SQL 語(yǔ)句,而ibatis 則要求開發(fā)者編寫具體的SQL

語(yǔ)句。相對(duì)Hibernate等 “全自動(dòng)”O(jiān)RM機(jī)制而言,ibatis

以SQL開發(fā)的工作量和數(shù)據(jù)庫(kù)移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。作為“全自動(dòng)”O(jiān)RM 實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis 的出現(xiàn)顯

得別具意義。

Compiere ERPCRM 【Java開源ERP與CRM系統(tǒng)】

Compiere

ERPCRM為全球范圍內(nèi)的中小型企業(yè)提供綜合型解決方案,覆蓋從客戶管理、供應(yīng)鏈到財(cái)務(wù)管理的全部領(lǐng)域,支持多組織、多幣種、多會(huì)計(jì)模式、多成本計(jì)算、多語(yǔ)種、多稅制等國(guó)際化特性。易于安裝、易于實(shí)施、易于使用。只需要短短幾個(gè)小時(shí),您就可以使用申購(gòu)-采購(gòu)-發(fā)票-付款、報(bào)價(jià)-訂單-發(fā)票-收款、產(chǎn)品與定價(jià)、資產(chǎn)管理、客戶關(guān)系、供應(yīng)商關(guān)系、員工關(guān)系、經(jīng)營(yíng)業(yè)績(jī)分析等強(qiáng)大功能了。

Roller Weblogger 【Java開源Blog博客】

這個(gè)weblogging

設(shè)計(jì)得比較精巧,源代碼是很好的學(xué)習(xí)資料。它支持weblogging應(yīng)有的特性如:評(píng)論功能,所見即所得HTML編輯,TrackBack,提供頁(yè)面模板,RSS

syndication,blogroll管理和提供一個(gè)XML-RPC 接口。

Eclipse 【Java開源IDE】

Eclipse平臺(tái)是IBM向開發(fā)源碼社區(qū)捐贈(zèng)的開發(fā)框架,它之所以出名并不是因?yàn)镮BM宣稱投入開發(fā)的資金總數(shù)

—4千萬(wàn)美元,而是因?yàn)槿绱司薮蟮耐度胨鶐?lái)的成果:一個(gè)成熟的、精心設(shè)計(jì)的以及可擴(kuò)展的體系結(jié)構(gòu)。

XPlanner 【Java開源項(xiàng)目管理】

XPlanner 一個(gè)基于Web的XP團(tuán)隊(duì)計(jì)劃和跟蹤工具。XP獨(dú)特的開發(fā)概念如iteration、user

stories等,XPlanner都提供了相對(duì)應(yīng)的的管理工具,XPlanner支持XP開發(fā)流程,并解決利用XP思想來(lái)開發(fā)項(xiàng)目所碰到的問(wèn)題。

XPlanner特點(diǎn)包括:簡(jiǎn)單的模型規(guī)劃,虛擬筆記卡(Virtual note cards),iterations、user

stories與工作記錄的追蹤,未完成stories將自動(dòng)迭代,工作時(shí)間追蹤,生成團(tuán)隊(duì)效率,個(gè)人工時(shí)報(bào)表,SOAP界面支持。

HSQLDB 【Java開源開源數(shù)據(jù)庫(kù)】

HSQLDB(Hypersonic SQL)是純Java開發(fā)的關(guān)系型數(shù)據(jù)庫(kù),并提供JDBC驅(qū)動(dòng)存取數(shù)據(jù)。支持ANSI-92 標(biāo)準(zhǔn)

SQL語(yǔ)法。而且他占的空間很小。大約只有160K,擁有快速的數(shù)據(jù)庫(kù)引擎。

Liferay 【Java開源門戶系統(tǒng)】

代表了完整的J2EE應(yīng)用,使用了Web、EJB以及JMS等技術(shù),特別是其前臺(tái)界面部分使用Struts

框架技術(shù),基于XML的portlet配置文件可以自由地動(dòng)態(tài)擴(kuò)展,使用了Web Services來(lái)支持一些遠(yuǎn)程信息的獲取,使用 Apahce

Lucene實(shí)現(xiàn)全文檢索功能。

主要特點(diǎn):

提供單一登陸接口,多認(rèn)證模式(LDAP或 SQL);

管理員能通過(guò)用戶界面輕松管理用戶,組,角色;

用戶能可以根據(jù)需要定制個(gè)性化的portal layout;

能夠在主流的J2EE應(yīng)用服務(wù)器上運(yùn)行,如JBoss+Jetty/Tomcat,JOnAS;

支 持主流的數(shù)據(jù)庫(kù),如PostgreSQL,MySQL;

使用了第三放的開源項(xiàng)目,如Hibernate, Lucene, Struts;

支持包括中文在內(nèi)的多種語(yǔ)言;

采用最先進(jìn)的技術(shù) Java, EJB, JMS, SOAP, XML;

JetSpeed 【Java開源門戶系統(tǒng)】

Jetspeed是一個(gè)開放源代碼的企業(yè)信息門戶(EIP)的實(shí)現(xiàn), 使用的技術(shù)是Java和XML. 用戶可以使用瀏覽器,

支持WAP協(xié)議的手機(jī)或者其它的設(shè)備訪問(wèn)Jetspeed架設(shè)的信息門戶獲取信息. Jetspeed扮演著信息集中器的角色,

它能夠把信息集中起來(lái)并且很容易地提供給用戶.

Jetspeed具有如下的特征:

即將成為標(biāo)準(zhǔn)化的Java Portlet API

基于模板的布局, 包括JSP和Velocity

通過(guò)開放的內(nèi)容同步技術(shù)支持遠(yuǎn)程XML 內(nèi)容交換

定制默認(rèn)的主頁(yè)

使用數(shù)據(jù)庫(kù)進(jìn)行用戶認(rèn)證

內(nèi)存緩存技術(shù), 加快頁(yè)面的響應(yīng)

通 過(guò)Rich Site Summary技術(shù), 支持同步內(nèi)容

和Cocoon, WebMacro, Velocity集成.

Wireless Markup Language (WML) 支持

使用XML格式的配置文件注冊(cè)portlet.

完整的 Web Application Archive (WAR) 支持

Web應(yīng)用程序開發(fā)的基礎(chǔ)設(shè)施

可以在本地緩 存遠(yuǎn)程內(nèi)容

與Avantgo同步

可移植到所有支持JDK1.2和Servlet 2.2的平臺(tái)

與 Turbine模塊和服務(wù)集成

可以根據(jù)用戶, 安裝媒體類型和語(yǔ)言的不同設(shè)定, 產(chǎn)生不同的個(gè)性化服務(wù)

持續(xù)化服 務(wù)使得所由的portlet能夠容易的存儲(chǔ)每個(gè)用戶的狀態(tài), 頁(yè)面和portlet

使用皮膚技術(shù)使得用戶可以選擇portlet的顏 色和顯示屬性

自定義功能是的管理員可以選擇portlet以及定義個(gè)人頁(yè)面的布局

在數(shù)據(jù)庫(kù)中存儲(chǔ)PSML

通 過(guò)Jetspeed的安全portlets管理用戶, 組,角色和權(quán)限

基于角色對(duì)訪問(wèn)portlet進(jìn)行控制

JOnAS 【Java開源應(yīng)用服務(wù)器】

JOnAS是一個(gè)開放源代碼的J2EE實(shí)現(xiàn),在ObjectWeb協(xié)會(huì)中開發(fā)。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet

2.3和JSP 1.2規(guī)范。JOnAS服務(wù)器依賴或?qū)崿F(xiàn)以下的Java API:JCA、JDBC、JTA

、JMS、JMX、JNDI、JAAS、JavaMail 。

JFox3.0 【Java開源應(yīng)用服務(wù)器】

JFox 是 Open Source Java EE Application Server,致力于提供輕量級(jí)的Java

EE應(yīng)用服務(wù)器,從3.0開始,JFox提供了一個(gè)支持模塊化的MVC框架,以簡(jiǎn)化EJB以及Web應(yīng)用的開發(fā)!

如果您正在尋找一個(gè)簡(jiǎn)單、輕量、高效、完善的Java EE開發(fā)平臺(tái),那么JFox正是您需要的。

JFox 3.0 擁有以下特性:

重 新設(shè)計(jì)的 IoC 微內(nèi)核,融入 OSGi 模塊化思想

設(shè)計(jì)成嵌入式架構(gòu),能夠和任何 Java Web Server集成部署

支 持 EJB3,JPA規(guī)范,支持容器內(nèi)和容器外兩種方式運(yùn)行EJB和JPA組件

支持 EJB 發(fā)布成Web Service

采 用 JOTM()提供事務(wù)處理,支持兩階段提交 (2PC)

采用 XAPool() 提供 XA

DataSource,支持智能連接池管理

內(nèi)置 MVC 框架,實(shí)現(xiàn)自動(dòng)Form

Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker頁(yè)面引擎,并支持直接在

Action中注入EJB

支持多應(yīng)用模塊部署,讓中大型應(yīng)用充分享受模塊化開發(fā)帶來(lái)的優(yōu)勢(shì)

提供 Manager 管理模塊,可以查看和管理各種運(yùn)行時(shí)參數(shù)

提供根據(jù) JFox 特色重寫的 Petstore 應(yīng)用模塊

EasyJWeb 【Java開源Web開發(fā)框架】

EasyJWeb是基于java技術(shù),應(yīng)用于WEB應(yīng)用程序快速開發(fā)的MVC框架,框架設(shè)計(jì)構(gòu)思來(lái)源于國(guó)內(nèi)眾多項(xiàng)目實(shí)踐,框架充分借簽了當(dāng)前主要流行的開源Web框架(Struts、JSF、Tapestry

、Webwork),吸取了其優(yōu)點(diǎn)及精華,利用Velocity作為模板頁(yè)面引擎,是一個(gè)實(shí)現(xiàn)了頁(yè)面及代碼完全分離的MVC開發(fā)框架。是一個(gè)能實(shí)現(xiàn)中小型

Web應(yīng)用系統(tǒng)快速開發(fā)的簡(jiǎn)易Web框架。

通過(guò)EasyJWeb

Tools提供的配套開發(fā)工具,可以實(shí)現(xiàn)基于EasyJWeb框架的Web應(yīng)用快速開發(fā),包括常用應(yīng)用軟件的代碼自生成、數(shù)據(jù)庫(kù)添刪改查(CRUD)代碼生成、自動(dòng)頁(yè)面模版生成、配置文件管理等。

框架特點(diǎn):

零配文件置支持。以前我們每接觸一個(gè)框架,開始總都要被

他的配置文件折騰一番。EasyJWeb實(shí)現(xiàn)零配置支持,可以不寫一句配置文件就在框架基礎(chǔ)上構(gòu)建你的運(yùn)用。(適合小型網(wǎng)站系統(tǒng))。

簡(jiǎn) 易的模板頁(yè)面設(shè)計(jì)支持:放棄使用jsp,使用簡(jiǎn)單Velocity腳本語(yǔ)言作為頁(yè)面模板。

頁(yè)面程序完全分離:實(shí)現(xiàn)顯示頁(yè)面與程序邏輯 的完全分離,克服了傳統(tǒng)jsp頁(yè)面難于維護(hù)的問(wèn)題。

基于頁(yè)面組件的框架。靈活的頁(yè)面組件配置,可以直接通過(guò)配置文件設(shè)置字段級(jí)的事件 組件。

快速開發(fā)支持:通過(guò)EasyJWeb

Tools,可以自動(dòng)生成應(yīng)用軟件模板代碼,定制并管理自己的J2EE代碼模板,代碼生成模板支持最流行的實(shí)用Java開發(fā)框架(如hibernate、

Spring等)實(shí)現(xiàn)快速開發(fā)。

Tapestry 【Java開源Web開發(fā)框架】

Tapestry是一個(gè)開源的基于servlet的應(yīng)用程序框架,它使用組件對(duì)象模型來(lái)創(chuàng)建動(dòng)態(tài)的,交互的web應(yīng)用。一個(gè)組件就是任意一個(gè)帶有

jwcid屬性的html標(biāo)記。其中jwc的意思是Java Web

Component。Tapestry使得java代碼與html完全分離,利用這個(gè)框架開發(fā)大型應(yīng)用變得輕而易舉。并且開發(fā)的應(yīng)用很容易維護(hù)和升級(jí)。

Tapestry支持本地化,其錯(cuò)誤報(bào)告也很詳細(xì)。Tapestry主要利用javabean和xml技術(shù)進(jìn)行開發(fā)?!維pindle:Tapestry

輔助開發(fā)Eclipse插件】.

FreeMarker 【Java開源模板引擎】

FreeMarker允許Java

servlet保持圖形設(shè)計(jì)同應(yīng)用程序邏輯的分離,這是通過(guò)在模板中密封HTML完成的。模板用servlet提供的數(shù)據(jù)動(dòng)態(tài)地生成

HTML。模板語(yǔ)言是強(qiáng)大的直觀的,編譯器速度快,輸出接近靜態(tài)HTML頁(yè)面的速度。

【FreeMarker Eclipse Plugin與FreeMarker IDE:Eclipse平臺(tái)下的輔助開發(fā)工具】

Lucene 【Java開源搜索引擎】

Apache

Lucene是一個(gè)基于Java全文搜索引擎,利用它可以輕易地為Java軟件加入全文搜尋功能。Lucene的最主要工作是替文件的每一個(gè)字作索引,索引讓搜尋的效率比傳統(tǒng)的逐字比較大大提高,Lucen提供一組解讀,過(guò)濾,分析文件,編排和使用索引的API,它的強(qiáng)大之處除了高效和簡(jiǎn)單外,是最重要的是使使用者可以隨時(shí)應(yīng)自已需要自訂其功能。

iText 【Java開源PDF類庫(kù)】

iText是一個(gè)能夠快速產(chǎn)生PDF文件的java類庫(kù)。iText的java類對(duì)于那些要產(chǎn)生包含文本,表格,圖形的只讀文檔是很有用的。它的類庫(kù)尤其與java

Servlet有很好的給合。使用iText與PDF能夠使你正確的控制Servlet的輸出。

Groovy 【Java開源動(dòng)態(tài)語(yǔ)言】

Groovy是一種基于JVM的敏捷開發(fā)語(yǔ)言,它結(jié)合了Python、Ruby和 Smalltalk的許多強(qiáng)大的特性。

Groovy已在WebWork2中的應(yīng)用。它可以被編譯為標(biāo)準(zhǔn)的Java Bytecode。

OpenCms 【Java開源CMS系統(tǒng)】

OpenCms是一個(gè)J2EE的產(chǎn)品,它是用 Java寫成的。它和Tomcat捆綁在一起。但是也能夠使用ATG

Dynamo、WebLogic和WebSphere。OpenCms支持多種RDBMS來(lái)保存內(nèi)容,包括Oracle、SQL

Server、Sybase和mySQL。新版本提供了一個(gè)新的模板引擎,JSP支持,一種新的連接管理系統(tǒng),提高了穩(wěn)定性。

JUnit 【Java開源測(cè)試工具】

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測(cè)試框架(regression testing

framework)。Junit測(cè)試是程序員測(cè)試,即所謂白盒測(cè)試,因?yàn)槌绦騿T知道被測(cè)試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進(jìn)行自動(dòng)測(cè)試了。

BlueJ 【Java開源IDE】

BlueJ是一個(gè)專門為入門級(jí)教學(xué)設(shè)計(jì)的JavaTM 開發(fā)環(huán)境。它是由澳大利亞墨爾本Monash大學(xué)BlueJ小組設(shè)計(jì)并開發(fā)的。

XWiki 【Java開源Wiki系統(tǒng)】

XWiki是一個(gè)強(qiáng)大的Java開源的Wiki引擎。它支持一些受歡迎的特性如:

內(nèi) 容管理(瀏覽/編輯/預(yù)覽/保存),

支持附件,

版本控制,

全文本搜索,

權(quán) 限管理

使用Hibernate進(jìn)行數(shù)據(jù)存儲(chǔ),

RSS輸出與顯示外部的RSS feeds,

多 語(yǔ)言支持,

提供XML/RPC的API,

WYSIWYG HTML編輯器,

導(dǎo)出為PDF

Groovy 腳本支持等等....。

EJBCA 【Java開源網(wǎng)絡(luò)服務(wù)器端組件】

EJBCA是一個(gè)全功能的CA系統(tǒng)軟件,它基于J2EE技術(shù),并提供了一個(gè)強(qiáng)大的、高性能并基于組件的CA。EJBCA兼具靈活性和平臺(tái)獨(dú)立性,能夠獨(dú)立使用,也能和任何J2EE應(yīng)用程序集成。

JXTA 【Java開源其它項(xiàng)目】

Sun微系統(tǒng)公司公開了旨在建立P2P(Peer to

Peer)通用技術(shù)基礎(chǔ)的JXTA計(jì)劃。JXTA技術(shù)是網(wǎng)絡(luò)編程和計(jì)算的平臺(tái),用以解決現(xiàn)代分布計(jì)算尤其是點(diǎn)對(duì)點(diǎn)(P2P)計(jì)算中出現(xiàn)的問(wèn)題。

JXTA將建立核心的網(wǎng)絡(luò)計(jì)算技術(shù),提供支持在任何平臺(tái)、任何地方以及任何時(shí)間實(shí)現(xiàn)P2P計(jì)算的一整套簡(jiǎn)單、小巧和靈活的機(jī)制。JXTA首先將歸納目前

P2P的功能特別,而后建立核心的技術(shù)來(lái)表達(dá)目前的P2P計(jì)算的局限性。其重點(diǎn)是創(chuàng)建基本的機(jī)制,而具體的策略選擇權(quán)則交給應(yīng)用的開發(fā)者。JXTA將充分利用XML、Java等開放技術(shù),使得UNIX操作系統(tǒng)更強(qiáng)大和靈活,比如利用管道(Pipes)傳輸Shell命令實(shí)現(xiàn)復(fù)雜的計(jì)算任務(wù)。JXTA支持

P2P應(yīng)用的基本功能來(lái)建立一個(gè)P2P系統(tǒng),還將努力證實(shí)這些可以成為建立更高層功能的基礎(chǔ)構(gòu)造模塊。JXTA架構(gòu)可以分為三個(gè)層面:JXTA核心層、

JXTA業(yè)務(wù)層和JXTA應(yīng)用層。

DWR 【Java開源AJAX框架】

DWR(Direct Web

Remoting)是一個(gè)WEB遠(yuǎn)程調(diào)用框架.利用這個(gè)框架可以讓AJAX開發(fā)變得很簡(jiǎn)單.利用DWR可以在客戶端利用JavaScript直接調(diào)用服務(wù)端的Java方法并返回值給JavaScript就好像直接本地客戶端調(diào)用一樣(DWR根據(jù)Java類來(lái)動(dòng)態(tài)生成JavaScrip代碼).它的最新版本

DWR0.6添加許多特性如:支持Dom Trees的自動(dòng)配置,支持Spring(JavaScript遠(yuǎn)程調(diào)用spring

bean),更好瀏覽器支持,還支持一個(gè)可選的commons-logging日記操作.

ZK 【Java開源AJAX框架】

ZK是一個(gè)Ajax Java Web框架,利用少量代碼就能夠開發(fā)出擁有Rich

UI的Web應(yīng)用。ZK提供基于XUL的標(biāo)記語(yǔ)言和事件驅(qū)動(dòng)的組件,可以讓你像開發(fā)桌面應(yīng)用程序一樣簡(jiǎn)單。支持EL表達(dá)式和腳本語(yǔ)言包括:JavaScript、Ruby和Groovy等。支持Annotation及數(shù)據(jù)綁定。集成Google

Maps、FCKeditor、DOJO以及Timeline。

有沒(méi)有比較好的java輕量級(jí)web開發(fā)框架

jfinal

JFinal 是基于 Java 語(yǔ)言的極速 WEB + ORM 框架,其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、代碼量少、學(xué)習(xí)簡(jiǎn)單、功能強(qiáng)大、輕量級(jí)、易擴(kuò)展、Restful。在擁有Java語(yǔ)言所有優(yōu)勢(shì)的同時(shí)再擁有ruby、python、php等動(dòng)態(tài)語(yǔ)言的

JFinal有如下主要特點(diǎn):

MVC架構(gòu),設(shè)計(jì)精巧,使用簡(jiǎn)單

遵循COC原則,零配置,無(wú)xml

獨(dú)創(chuàng)Db + Record模式,靈活便利

ActiveRecord支持,使數(shù)據(jù)庫(kù)開發(fā)極致快速

自動(dòng)加載修改后的java文件,開發(fā)過(guò)程中無(wú)需重啟web server

AOP支持,攔截器配置靈活,功能強(qiáng)大

Plugin體系結(jié)構(gòu),擴(kuò)展性強(qiáng)

多視圖支持,支持FreeMarker、JSP、Velocity

強(qiáng)大的Validator后端校驗(yàn)功能

功能齊全,擁有struts2的絕大部分功能

體積小僅339K,且無(wú)第三方依賴

java常用框架及功能有哪些?

框架1:Spring框架

該框架排名第一,因?yàn)樗哂虚_發(fā)復(fù)雜Web應(yīng)用程序的出色能力,而且,這些應(yīng)用程序因性能突出而廣受贊譽(yù)。它使Java開發(fā)人員能夠輕松地創(chuàng)建企業(yè)級(jí)應(yīng)用程序。

Web應(yīng)用程序開發(fā)人員可以證明Spring框架的能力。這就是Spring成為Java開發(fā)人員最愛的原因。下面的數(shù)據(jù)可以證明這一點(diǎn)。以下是開發(fā)者(選擇Java作為首選的三種編程語(yǔ)言之一)對(duì)Java框架的看法:

在開發(fā)人員的選擇中,Spring MVC和Spring Boot遠(yuǎn)遠(yuǎn)領(lǐng)先于其他Java技術(shù)。對(duì)于開發(fā)人員來(lái)說(shuō),這里的一大優(yōu)勢(shì)是他們可以不受其他模塊約束而專注于一個(gè)模塊,因?yàn)镾pring利用了控制反轉(zhuǎn)(IoC)。

這個(gè)框架的其他一些優(yōu)點(diǎn)是一個(gè)全面的配置模型,支持傳統(tǒng)數(shù)據(jù)庫(kù)和現(xiàn)代數(shù)據(jù)庫(kù)(如NoSQL),并通過(guò)支持面向方面編程來(lái)支持內(nèi)聚開發(fā)。它提供了一些模塊,如Spring MVC、Spring Core、Spring Boost、SpringTransaction等。

框架2:Hibernate框架

作為一個(gè)對(duì)象關(guān)系映射(ORM)數(shù)據(jù)庫(kù),它改變了我們以前查看數(shù)據(jù)庫(kù)的方式。盡管它不是一個(gè)全??蚣?,但它可以極其輕松地為多個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)換數(shù)據(jù)。

它支持多個(gè)數(shù)據(jù)庫(kù)的能力使它很容易擴(kuò)展,無(wú)論應(yīng)用程序的大小或用戶的數(shù)量如何。它速度快、功能強(qiáng)大、易于擴(kuò)展、修改和配置。

框架3:Struts框架

該框架幫助自定義軟件開發(fā)人員創(chuàng)建易于維護(hù)的企業(yè)級(jí)應(yīng)用程序。這個(gè)框架的USP是它的插件。它們是JAR包,這意味著它們是可移植的。

Hibernate插件和Spring插件分別可以用于對(duì)象關(guān)系映射和依賴注入。使用此Java框架開發(fā)應(yīng)用程序可以減少處理時(shí)間,因?yàn)樗峁┝私M織良好的Java、JSP和Action類。

框架4:Play

使用該框架的頂尖公司包括LinkedIn、三星、衛(wèi)報(bào)、Verizon等。這只能說(shuō)明它的可信度。該框架提供了速度、可伸縮性和性能。

它的用戶界面非常簡(jiǎn)單,使移動(dòng)應(yīng)用程序開發(fā)人員可以快速理解它。它主要用于開發(fā)需要統(tǒng)一內(nèi)容創(chuàng)建的應(yīng)用程序。

框架5:Google Web Toolkit

這個(gè)框架用于客戶端開發(fā),類似JavaScript。它是一個(gè)開源的Java框架,這意味著它是免費(fèi)的。谷歌廣泛使用了這個(gè)框架,谷歌產(chǎn)品如AdSense、谷歌錢包、AdWords都是使用它編寫的。

借助GWT代碼,可以輕松地開發(fā)和調(diào)試Ajax應(yīng)用程序。Java開發(fā)人員更喜歡使用這個(gè)框架來(lái)編寫復(fù)雜的應(yīng)用程序。書簽、跨瀏覽器可移植性、歷史記錄和管理是它的一些特性。

閱讀完分享的Java的熱門框架后,希望你能有一個(gè)更清晰的了解。

現(xiàn)在有什么好用的java開發(fā)框架

分享10個(gè)最好的工具、框架和庫(kù),以幫助 Java 開發(fā)人員在不同的 Java 項(xiàng)目中更好地執(zhí)行單元測(cè)試和集成測(cè)試。

▌JUnit

JUnit 應(yīng)該不需要過(guò)多介紹。哪怕你是一位 Java 初學(xué)者,我想你也應(yīng)該聽說(shuō)過(guò)它,它能夠讓你為 Java 代碼編寫單元測(cè)試。

幾乎所有常用的 IDE,比如 Eclipse、NetBeans 和 IntelliJ,都能夠集成 JUnit,這意味著開發(fā)者直接可以在這些 IDE 中編寫并運(yùn)行單元測(cè)試。

目前大多數(shù)人仍然在使用 JUnit 4,事實(shí)上新的 JUnit 5 已經(jīng)發(fā)布。你可以用 JUnit 進(jìn)行單元測(cè)試和集成測(cè)試,此外,它還支持 Java 8 功能。

▌REST Assured

相比于 Groovy 這類動(dòng)態(tài)語(yǔ)言,在 Java 中測(cè)試和驗(yàn)證 REST 服務(wù)更難。

REST Assured 為 Java 帶來(lái)了這些語(yǔ)言的簡(jiǎn)單性。這對(duì)于 REST API 集成測(cè)試來(lái)說(shuō)是一個(gè)很好的工具。

▌Selenium

Selenium 應(yīng)該是最受歡迎的 Java UI 測(cè)試工具,有了它,你不需要在瀏覽器中啟動(dòng) JSP 頁(yè)面即可對(duì)其進(jìn)行測(cè)試。

你可以使用 JUnit 和 Selenium 來(lái)測(cè)試 Web 應(yīng)用程序 UI。還可以使用它進(jìn)行 Web 應(yīng)用程序驗(yàn)收測(cè)試。

▌TestNG

TestNG 這款測(cè)試框架最早源于 JUnit 和 NUnit 的啟發(fā),但它在這兩者的基礎(chǔ)上引入了許多新的功能,其功能更強(qiáng)大,也更易于使用,提供了注解功能,支持在任意大型線程池中運(yùn)行各種可用策略的測(cè)試(所有方法都在自己的線程中,每個(gè)測(cè)試類對(duì)應(yīng)一個(gè)線程)。

隨著 JUnit 4 中注解功能的引入以及 Hamcrest 框架的整合,JUnit 4 和 TestNG 之間的差距已經(jīng)很小。

▌Mockito

Java 有許多 Mock 框架,例如 PowerMock 和 JMock,但我個(gè)人更喜歡 Mockito,它具有簡(jiǎn)單的 API、優(yōu)秀的文檔以及大量示例。

Mock 測(cè)試是現(xiàn)代單元測(cè)試的關(guān)鍵技術(shù)之一,開發(fā)者不需要依賴其他情況也可獨(dú)立測(cè)試代碼,因此我建議每個(gè) Java 開發(fā)人員都應(yīng)該學(xué)習(xí) Mock 框架來(lái)與 JUnit 結(jié)合使用。

我個(gè)人最喜歡的 Mock 框架是 Mockito,如果你喜歡的話,也可以了解一下 PowerMock或者 JMock。

▌Spock 框架

Spock 是一款用于 Java 和 Groovy 應(yīng)用程序的測(cè)試和規(guī)范框架。它用 Groovy 編寫,因此它具有很強(qiáng)的表現(xiàn)力,并且非常規(guī)范。

使用 Spock 時(shí),測(cè)試將變得更加易讀易維護(hù)。此外,得益于它的 JUnit 運(yùn)行器,Spock能夠兼容大多數(shù) IDE、構(gòu)建工具和持續(xù)集成服務(wù)器。

不過(guò)遺憾的是,線上講述 Spock 框架的課程好像不多,“使用 Spock 進(jìn)行 Java 測(cè)試”這本書倒是一個(gè)不錯(cuò)的學(xué)習(xí)資源。

▌Cucumber

Cucumber 是一款很好的自動(dòng)化集成測(cè)試工具,與其他同類工具相比,它的規(guī)范功能是一大特色。

Cucumber 將規(guī)范和測(cè)試文檔合并為一個(gè)文檔,由于文檔也會(huì)被 Cucumber 自動(dòng)測(cè)試,因此規(guī)范文檔始終會(huì)被更新為最新版本。

▌Spring 測(cè)試

Spring MVC 自帶了一個(gè)非常有用的測(cè)試框架,可以在不涉及 Web 容器的情況下進(jìn)行深入測(cè)試。

這個(gè)是一個(gè)非常有用的庫(kù),可以為 Spring 應(yīng)用程序編寫自動(dòng)化測(cè)試。它為 Spring 應(yīng)用程序(包括 MVC 控制器)編寫單元和集成測(cè)試提供了強(qiáng)有力的支持。

還有一個(gè) Spring Test DbUnit,它將 Spring 測(cè)試框架與 DbUnit 以及 HtmlUnit 集成在了一起。

使用這些工具,你可以輕松完成 Spring MVC 應(yīng)用程序的自動(dòng)化測(cè)試。

▌DBUnit

對(duì)于大多數(shù)的 Java 應(yīng)用程序,不管是核心 Java 程序還是 Java Web 應(yīng)用,數(shù)據(jù)庫(kù)都是其不可或缺的重要組成部分,并且數(shù)據(jù)庫(kù)還很可能是單元測(cè)試的最大障礙。

連接到 Dev 或者 UAT 數(shù)據(jù)庫(kù)進(jìn)行集成測(cè)試是不可靠的,因?yàn)槿魏稳硕伎梢愿臄?shù)據(jù)和模式,比如表和存儲(chǔ)過(guò)程,這都會(huì)導(dǎo)致自動(dòng)化集成測(cè)試的失敗。

DbUnit 是 JUnit 的擴(kuò)展,在每次集成測(cè)試之前它可以將數(shù)據(jù)庫(kù)初始化為已知狀態(tài),從而確保數(shù)據(jù)庫(kù)包含正確的數(shù)據(jù)。

DbUnit 是一個(gè)非常有用的工具,它可以幫助我們將測(cè)試數(shù)據(jù)和測(cè)試代碼分開。

▌Robot 框架

Robot 框架是一個(gè)基于 Python 的通用自動(dòng)化測(cè)試框架,主要用于驗(yàn)收測(cè)試以及驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)。

它采用表格測(cè)試數(shù)據(jù)語(yǔ)法,是一個(gè)關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架。分布式異構(gòu)應(yīng)用程序的驗(yàn)證往往需要多種技術(shù)和接口,非常適合用 Robot 來(lái)測(cè)試。

java在工作中常用的框架有哪些!

Spring Framework 【Java開源 J2EE框架】

Spring是一個(gè)解決了許多在J2EE開發(fā)中常見的問(wèn)題的強(qiáng)大框架。 Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無(wú)二的。 Spring提供了唯一的數(shù)據(jù)訪問(wèn)抽象,包括簡(jiǎn)單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。Spring的數(shù)據(jù)訪問(wèn)架構(gòu)還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個(gè)一致的編程模型。Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語(yǔ)言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)--如果你需要--還能實(shí)現(xiàn)你自己的aspects。這個(gè)框架足夠強(qiáng)大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。Spring還提供了可以和IoC容器集成的強(qiáng)大而靈活的MVC Web框架?!維pringIDE:Eclipse平臺(tái)下一個(gè)輔助開發(fā)插件】.

Struts 【Java開源 Web框架】

Struts是一個(gè)基于Sun J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來(lái)實(shí)現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡(jiǎn)單易用,敏捷迅速,在過(guò)去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說(shuō)Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架?!維trutsIDE:用于Struts輔助開發(fā)的一個(gè)Eclipse插件】

Hibernate 【Java開源 持久層框架】

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Eclipse平臺(tái)下的Hibernate輔助開發(fā)工具:【Hibernate Synchronizer】【MiddlegenIDE】

還有Tapestry

文章標(biāo)題:java最小代碼框架 java代碼結(jié)構(gòu)設(shè)計(jì)
轉(zhuǎn)載來(lái)于:http://muchs.cn/article16/hphsdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)頁(yè)設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)、微信小程序網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)