四虎影院在线,亚洲熟妇AV乱码在线观看,成在线人视频免费视频,亚洲Av无码Av日韩Av网站

哈爾濱今日靈圖

[其他技能培訓]
獵學網(wǎng)訂閱號
獵學網(wǎng)官方企業(yè)微信
位置: 獵學網(wǎng) > 學校機構(gòu) > 哈爾濱今日靈圖 > 學習資訊> Web前端到后臺常用框架介紹

Web前端到后臺常用框架介紹

55 2017-04-19

一、SpringMVC

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

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

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

控制器(Controller)負責處理用戶的請求,并建立適當?shù)哪P停阉鼈鬟f給視圖渲染。

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

SpringWebMVC處理請求的流程

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

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

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

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

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

二、Spring

2.1、IOC容器

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

2.2、AOP

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

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

Authentication權(quán)限

Caching緩存

Contextpassing內(nèi)容傳遞

Errorhandling錯誤處理

Lazyloading懶加載

Debugging調(diào)試

logging,tracing,profilingandmonitoring記錄跟蹤優(yōu)化校準

Performanceoptimization性能優(yōu)化

Persistence持久化

Resourcepooling資源池

Synchronization同步

Transactions事務(wù)

三、Mybatis

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

總體流程:

(1)加載配置并初始化

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

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

(2)接收調(diào)用請求

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

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

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

(3)處理操作請求觸發(fā)條件:API接口層傳遞請求過來

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

處理過程:

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

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

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

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

(E)釋放連接資源。

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

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

四、Dubbo

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

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

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

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

節(jié)點角色說明:

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

Consumer:調(diào)用遠程服務(wù)的服務(wù)消費方。

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

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

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

五、Maven

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

六、RabbitMQ

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

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

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

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

七、Log4j

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

八、Ehcache

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

優(yōu)點:

1、快速

2、簡單

3、多種緩存策略

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

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

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

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

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

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

缺點:

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

2、不能保證數(shù)據(jù)的安全:當突然kill掉java的時候,可能會產(chǎn)生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對于Cache數(shù)據(jù)需要保存的時候可能不利。當然,Cache只是簡單的加速,而不能保證數(shù)據(jù)的安全。如果想保證數(shù)據(jù)的存儲安全,可以使用BekeleyDBJavaEdition版本。這是個嵌入式數(shù)據(jù)庫??梢源_保存儲安全和空間的利用率。

九、Redis

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

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

1.2、Redis優(yōu)點:

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

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

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

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

1.3、Redis缺點:

(1)單線程

(2)耗內(nèi)存

十、Shiro

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

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

(2)授權(quán),即權(quán)限驗證,驗證某個已認證的用戶是否擁有某個權(quán)限;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色?;蛘呒毩6鹊尿炞C某個用戶對某個資源是否具有某個權(quán)限;

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

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

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

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

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

(7)提供測試支持;

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

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

文字描述可能并不能讓猿友們完全理解具體功能的意思。下面我們以登錄驗證為例,向猿友們介紹Shiro的使用。至于其他功能點,猿友們用到的時候再去深究其用法也不遲。

十一、設(shè)計模式

這個算不上框架,可自行忽略,不過博主認為設(shè)計模式的思想很有必要了解一下。

blog.csdn/u/article/details/

blog.csdn/u/article/details/

blog.csdn/u/article/details/

思想:

開閉原則:開閉原則就是說對擴展開放,對修改關(guān)閉。在程序需要進行拓展的時候,不能去修改原有的代碼。

針對接口編程,真對接口編程,依賴于抽象而不依賴于具體。

盡量使用合成/聚合的方式,而不是使用繼承。

一個實體應(yīng)當盡量少的與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。

使用多個隔離的接口,比使用單個接口要好。

里氏代換原則:(1)子類的能力必須大于等于父類,即父類可以使用的方法,子類都可以使用。(2)返回值也是同樣的道理。假設(shè)一個父類方法返回一個List,子類返回一個ArrayList,這當然可以。如果父類方法返回一個ArrayList,子類返回一個List,就說不通了。這里子類返回值的能力是比父類小的。(3)還有拋出異常的情況。任何子類方法可以聲明拋出父類方法聲明異常的子類。

而不能聲明拋出父類沒有聲明的異常。

請聯(lián)系網(wǎng)站客服,了解詳細的優(yōu)惠課程信息~

優(yōu)質(zhì)、權(quán)威、便捷、省心

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費領(lǐng)!

掃一掃
獲取更多福利

×
獵學網(wǎng)
日韩少妇高潮| 国产在线观看成人| 屄 在线观看| 片多多免费观看高清影视| 熟女午夜福利视频| 亚洲老熟女@TUBEUMTV| 亚洲20久久| 本溪| 97婷婷乱伦| 久久艹网站| 亚洲色成人www| 欧美五月婷婷| 久久久久久久白丝| 国产精品高清无码| 区二区三区玖玖玖| a级A美女毛片| 欧美色欧美亚洲另类二区| 一级二级三级免费影视| 行唐县| 理论亚影院| 在熟睡夫面前侵犯我在线播放| 亚洲视频五月| 在线观看污污视频| 一区二区视频在线| 小草黄色AV| 色综合久久久久久| 中文A V免费| 色天使综合网| 国产私拍大尺度在线视频| 色综合com| 男人把ji大巴放进女人免费图片| 欧美亚洲日韩在线观看| 99xing在线| 天堂av中文| 超碰爱爱爱| 国产AV一二三四五区| 色国产精品一区在线观看| 97愛国产| 国产精品无码专区| 四虎免费影视永久在线| 久色成人电影|