java框架介紹及實例演示(常用java開發框架)

本文目錄一覽:

java框架有哪些常用框架?

十大常用框架:

一、SpringMVC

二、Spring

三、Mybatis

四、Dubbo

五、Maven

六、RabbitMQ

七、Log4j

八、Ehcache

九、Redis

十、Shiro

延展閱讀:

一、SpringMVC

Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我們日常Web開發的。

模型(Model )封裝了應用程序的數據和一般他們會組成的POJO。

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

控制器(Controller )負責處理用戶的請求,並建立適當的模型,並把它傳遞給視圖渲染。

Spring的web模型 – 視圖 – 控制器(MVC)框架是圍繞著處理所有的HTTP請求和響應的DispatcherServlet的設計。

Spring Web MVC處理請求的流程

具體執行步驟如下:

1、 首先用戶發送請求————前端控制器,前端控制器根據請求信息(如URL)來決定選擇哪一個頁面控制器進行處理並把請求委託給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;

2、 頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在Spring Web MVC中叫命令對象,並進行驗證,然後將命令對象委託給業務對象進行處理;處理完畢後返回一個ModelAndView(模型數據和邏輯視圖名);圖2-1中的3、4、5步驟;

3、 前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染;圖2-1中的步驟6、7;

4、 前端控制器再次收回控制權,將響應返回給用戶,圖2-1中的步驟8;至此整個結束。

二、Spring

2.1、IOC容器:

IOC容器就是具有依賴注入功能的容器,IOC容器負責實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。應用程序無需直接在代碼中new相關的對象,應用程序由IOC容器進行組裝。在Spring中BeanFactory是IOC容器的實際代表者。

2.2、AOP:

簡單地說,就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重複代碼,降低模塊間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關係

AOP用來封裝橫切關注點,具體可以在下面的場景中使用:

Authentication 許可權 

Caching 緩存 

Context passing 內容傳遞 

Error handling 錯誤處理 

Lazy loading 懶載入 

Debugging調試 

logging, tracing, profiling and monitoring 記錄跟蹤 優化 校準 

Performance optimization 性能優化 

Persistence持久化 

Resource pooling 資源池 

Synchronization 同步 

Transactions 事務

三、Mybatis

MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始映射,將介面和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。

總體流程:

(1)載入配置並初始化 

觸發條件:載入配置文件 

將SQL的配置信息載入成為一個個MappedStatement對象(包括了傳入參數映射配置、執行的SQL語句、結果映射配置),存儲在內存中。

(2)接收調用請求 

觸發條件:調用Mybatis提供的API 

傳入參數:為SQL的ID和傳入參數對象 

處理過程:將請求傳遞給下層的請求處理層進行處理。

(3)處理操作請求 觸發條件:API介面層傳遞請求過來 

傳入參數:為SQL的ID和傳入參數對象

處理過程:

(A)根據SQL的ID查找對應的MappedStatement對象。

(B)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。

(C)獲取資料庫連接,根據得到的最終SQL語句和執行傳入參數到資料庫執行,並得到執行結果。

(D)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,並得到最終的處理結果。

(E)釋放連接資源。

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

MyBatis 最強大的特性之一就是它的動態語句功能。如果您以前有使用JDBC或者類似框架的經歷,您就會明白把SQL語句條件連接在一起是多麼的痛苦,要確保不能忘記空格或者不要在columns列後面省略一個逗號等。動態語句能夠完全解決掉這些痛苦。

四、Dubbo

Dubbo是一個分散式服務框架,致力於提供高性能和透明化的RPC(遠程過程調用協議)遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分散式框架。

1、透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。

2、軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。

3、 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。

節點角色說明: 

Provider: 暴露服務的服務提供方。 

Consumer: 調用遠程服務的服務消費方。 

Registry: 服務註冊與發現的註冊中心。 

Monitor: 統計服務的調用次調和調用時間的監控中心。 

Container: 服務運行容器。

五、Maven

Maven這個個項目管理和構建自動化工具,越來越多的開發人員使用它來管理項目中的jar包。但是對於我們程序員來說,我們最關心的是它的項目構建功能。

六、RabbitMQ

消息隊列一般是在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。

RabbitMQ是用Erlang實現的一個高並發高可靠AMQP消息隊列伺服器。

Erlang是一門動態類型的函數式編程語言。對應到Erlang里,每個Actor對應著一個Erlang進程,進程之間通過消息傳遞進行通信。相比共享內存,進程間通過消息傳遞來通信帶來的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機底層實現中的鎖應用)。

AMQP(Advanced Message Queue Protocol)定義了一種消息系統規範。這個規範描述了在一個分散式的系統中各個子系統如何通過消息交互。

七、Log4j

日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。

八、Ehcache

EhCache 是一個純Java的進程內緩存框架,具有快速、精幹等特點,是Hibernate中默認的CacheProvider。Ehcache是一種廣泛使用的開源Java分散式緩存。主要面向通用緩存,Java EE和輕量級容器。它具有內存和磁碟存儲,緩存載入器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點。

優點: 

1、 快速 

2、 簡單 

3、 多種緩存策略 

4、緩存數據有兩級:內存和磁碟,因此無需擔心容量問題 

5、 緩存數據會在虛擬機重啟的過程中寫入磁碟 

6、可以通過RMI、可插入API等方式進行分散式緩存 

7、 具有緩存和緩存管理器的偵聽介面 

8、支持多緩存管理器實例,以及一個實例的多個緩存區域 

9、提供Hibernate的緩存實現

缺點: 

1、使用磁碟Cache的時候非常佔用磁碟空間:這是因為DiskCache的演算法簡單,該演算法簡單也導致Cache的效率非常高。它只是對元素直接追加存儲。因此搜索元素的時候非常的快。如果使用DiskCache的,在很頻繁的應用中,很快磁碟會滿。

2、 不能保證數據的安全:當突然kill掉java的時候,可能會產生衝突,EhCache的解決方法是如果文件衝突了,則重建cache。這對於Cache數據需要保存的時候可能不利。當然,Cache只是簡單的加速,而不能保證數據的安全。如果想保證數據的存儲安全,可以使用Bekeley DB Java Edition版本。這是個嵌入式資料庫。可以確保存儲安全和空間的利用率。

九、Redis

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

Redis資料庫完全在內存中,使用磁碟僅用於持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據複製到任意數量的從伺服器。

1.2、Redis優點:

(1)異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。

(2)支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。

(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis伺服器將獲得更新後的值。

(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。

1.3、Redis缺點: 

(1)單線程 

(2)耗內存

十、Shiro

Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認證,授權,企業會話管理和加密等。Shiro的具體功能點如下:

(1)身份認證/登錄,驗證用戶是不是擁有相應的身份;

(2)授權,即許可權驗證,驗證某個已認證的用戶是否擁有某個許可權;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個許可權;

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

(4)加密,保護數據的安全性,如密碼加密存儲到資料庫,而不是明文存儲;

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

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

(6)shiro支持多線程應用的並發驗證,即如在一個線程中開啟另一個線程,能把許可權自動傳播過去;

(7)提供測試支持;

(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;

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

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

框架1:Spring框架

該框架排名第一,因為它具有開發複雜Web應用程序的出色能力,而且,這些應用程序因性能突出而廣受讚譽。它使Java開發人員能夠輕鬆地創建企業級應用程序。

Web應用程序開發人員可以證明Spring框架的能力。這就是Spring成為Java開發人員最愛的原因。下面的數據可以證明這一點。以下是開發者(選擇Java作為首選的三種編程語言之一)對Java框架的看法:

在開發人員的選擇中,Spring MVC和Spring Boot遠遠領先於其他Java技術。對於開發人員來說,這裡的一大優勢是他們可以不受其他模塊約束而專註於一個模塊,因為Spring利用了控制反轉(IoC)。

這個框架的其他一些優點是一個全面的配置模型,支持傳統資料庫和現代資料庫(如NoSQL),並通過支持面向方面編程來支持內聚開發。它提供了一些模塊,如Spring MVC、Spring Core、Spring Boost、SpringTransaction等。

框架2:Hibernate框架

作為一個對象關係映射(ORM)資料庫,它改變了我們以前查看資料庫的方式。儘管它不是一個全棧框架,但它可以極其輕鬆地為多個資料庫轉換數據。

它支持多個資料庫的能力使它很容易擴展,無論應用程序的大小或用戶的數量如何。它速度快、功能強大、易於擴展、修改和配置。

框架3:Struts框架

該框架幫助自定義軟體開發人員創建易於維護的企業級應用程序。這個框架的USP是它的插件。它們是JAR包,這意味著它們是可移植的。

Hibernate插件和Spring插件分別可以用於對象關係映射和依賴注入。使用此Java框架開發應用程序可以減少處理時間,因為它提供了組織良好的Java、JSP和Action類。

框架4:Play

使用該框架的頂尖公司包括LinkedIn、三星、衛報、Verizon等。這隻能說明它的可信度。該框架提供了速度、可伸縮性和性能。

它的用戶界面非常簡單,使移動應用程序開發人員可以快速理解它。它主要用於開發需要統一內容創建的應用程序。

框架5:Google Web Toolkit

這個框架用於客戶端開發,類似JavaScript。它是一個開源的Java框架,這意味著它是免費的。谷歌廣泛使用了這個框架,谷歌產品如AdSense、谷歌錢包、AdWords都是使用它編寫的。

藉助GWT代碼,可以輕鬆地開發和調試Ajax應用程序。Java開發人員更喜歡使用這個框架來編寫複雜的應用程序。書籤、跨瀏覽器可移植性、歷史記錄和管理是它的一些特性。

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

JAVA的三大框架是什麼?如何進行學習的呢?

三大框架:Struts+Hibernate+Spring。Java三大框架主要用來做WEN應用。

Struts主要負責表示層的顯示。

Spring利用它的IOC和AOP來處理控制業務(負責對資料庫的操作)。

Hibernate主要是數據持久化到資料庫。

再用jsp的servlet做網頁開發的時候有個web.xml的映射文件,裡面有一個mapping的標籤就是用來做文件映射的。當在瀏覽器上輸入URL得知的時候,文件就會根據寫的名稱對應到一個JAVA文件,根據java文件里編寫的內容顯示在瀏覽器上,就是一個網頁。

擴展資料:

Java框架益處:

減少設計辛勞:

集合框架通過提供有用的數據結構和演算法使你能集中注意力於你的程序的重要部分上,而不是為了讓程序能正常運轉而將注意力於低層設計上。通過這些在無關API之間的簡易的互用性,使你免除了為改編對象或轉換代碼以便聯合這些API而去寫大量的代碼。

提高速度質量:

集合框架通過提供對有用的數據結構和演算法的高性能和高質量的實現使你的程序速度和質量得到提高。因為每個介面的實現是可互換的,所以的程序可以很容易的通過改變一個實現而進行調整。

另外,可以從寫自己的數據結構的苦差事中解脫出來,從而有更多時間關注於程序其它部分的質量和性能。

API缺點:

許多API天生的有對集合的存儲和獲取。在過去,這樣的API都有一些子API幫助操縱它的集合內容,因此在那些特殊的子API之間就會缺乏一致性,也不得不從零開始學習,並且在使用時也很容易犯錯。而標準集合框架介面的出現使這個問題迎刃而解。

參考資料來源:百度百科-Java框架

java框架有哪些

java框架實在是太多了,網上一抄一大段,根本就了解不到什麼。我還是以我的經驗來說一下j2ee的框架。

1.首先力推struts2框架,這是最經典的框架(可以說沒有「之一」)。可以幫你快速搭建出一個MVC模型出來。(註:struts1已經很少用了,且問題也很多,強烈推薦使用struts2).

2.Spring框架,這是排行第二的框架(我個人排得,非權威),這個框架出彩的地方就在於它的「依賴注入」和「控制反轉」。簡單的說,就是在程序運行的時候才將參數注入到容器里。

3.持久層框架選Hibernate和Ibatis。 Hibernate自動化能力強,開發大型應用可以節約開發時間,ibatis小巧簡潔,靈活。

4.Jquery是繼prototype之後又一個優秀的Javacript框架,封裝了很多javascript方法,是開發jsp用的框架,目前很流行

一般開發,都是使用Struts2+Spring+Hibernate(ibatis)整合,前端用jquery或者其他類似框架。對於簡單的系統,有時用Spring MVC一個框架即可。

原創文章,作者:EQRWA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329843.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EQRWA的頭像EQRWA
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • agavi開發框架

    Agavi是一個基於MVC模式的Web應用程序開發框架,以REST和面向資源的設計為核心思想。本文章將從Agavi的概念、優點、使用方法和實例等方面進行詳細介紹。 一、概念 Aga…

    編程 2025-04-29
  • Python unittest框架用法介紹

    Python unittest框架是Python自帶的一種測試框架,可以用來編寫並運行測試用例。在本文中,我們將從以下幾個方面詳細介紹Python unittest框架的使用方法和…

    編程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字元串(string)。…

    編程 2025-04-28
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • 如何在dolphinscheduler中運行chunjun任務實例

    本文將從多個方面對dolphinscheduler運行chunjun任務實例進行詳細的闡述,包括準備工作、chunjun任務配置、運行結果等方面。 一、準備工作 在運行chunju…

    編程 2025-04-28

發表回復

登錄後才能評論