在java架構(gòu)模式中,我們可以將MVC架構(gòu)模式抽象為如下結(jié)構(gòu):
1.View層。View層即UI層,可采用的技術(shù)如JSP,Structs,SpringMVC等
2.Controller層。Controller表示控制器層,可采用的技術(shù),如Servlet/Filter,Spring等
3.Service層。Service層表示核心服務(wù)層,向架構(gòu)上層提供服務(wù)
4.DAO層。DAO層表示數(shù)據(jù)訪問層,可采用的技術(shù)如jdbc和ORM框架(如Spring JDBC,JPA,Hibernate,Mybatis等)
5.Model層。Model層即表示JavaBean對象
6.Utilities層。Utilities層表示公共工具層
需要注意的是,在該架構(gòu)抽象模型中,并未涉及到其他技術(shù),如SOA,Nosql(Redis,Mongodb等),MQ等,除此之外,基于Springboot+Cloud的微服務(wù)技術(shù),也未涉及,因為這里只將基于MVC的架構(gòu)模式演變,具體的JavaWeb架構(gòu),將在以后的章節(jié)講解。
基于如上的架構(gòu)抽象模型,我們可以將該架構(gòu)模式發(fā)展分為三個階段:
階段一:Servlet階段
階段二:SSH(Spring+Structs+Hibernate)階段
階段三:SSM階段(Spring+SpringMVC+Mybatis)階段
其實,還存在階段四,即微服務(wù)階段,本篇文章不講解。
(一)階段一:Servlet/Filter扮演控制器角色
1.在該階段架構(gòu)模式中,Servlet/Filter扮演Controller角色,JSP扮演View角色,JavaBean扮演Model角色
2.該階段的數(shù)據(jù)庫訪問技術(shù)為具體DB的jdbc
該模式雖然實現(xiàn)了所謂的MVC模式,但卻存在諸多問題:
(1)前后端分離不徹底。由于JSP技術(shù)前后端分離不徹底,開發(fā)人員往往會在JSP頁面中嵌套Java代碼,從而需要前端開發(fā)人員懂java技術(shù)
(2)JSP頁面可讀性差,編寫效率低,盡管引入EL,JSTL等技術(shù)
(3)Sevlet/Filter作為控制器,面臨的穩(wěn)定性,安全性考驗(Servlet是線程不安全的)等
(4)數(shù)據(jù)庫訪問技術(shù)采用傳統(tǒng)的jdbc,造成過多的冗余代碼
當(dāng)然,還存在很多問題,這里不一一列舉,為了解決這些問題,JavaWeb專家們提出了一種架構(gòu)思想:模塊化,抽象化和專一化的思想?;谠撍枷?,涌向出一批專業(yè)化開源框架,其中較為出名的組合框架便是SSH了。
(二)階段二:SSH
1.在該架構(gòu)模式中,Controller采用Spring框架技術(shù),View采用Structs框架技術(shù),DB訪問技術(shù)采用Hibernate框架技術(shù)
2.從SSH中,很容易看出前后端出現(xiàn)了專業(yè)化,精細(xì)化分工,且朝框架演變,如前端框架采用Structs,后端框架采用Spring等
然而,SSH架構(gòu)模式雖然解決了Servlet/Filter架構(gòu)模式存在的問題,實現(xiàn)了專業(yè)化、精細(xì)化分工,實現(xiàn)了模塊化和抽象化,
但其卻存在一個比較大的問題:框架笨重不靈活。如Hibernate雖然能滿足業(yè)務(wù)需求,能解決業(yè)務(wù),但其笨重不靈活,不能很好地
實現(xiàn)可配置化的靈活方式,Structs也過于笨重。為了解決該問題,JavaWeb專家們又提出了另外一種架構(gòu)模式,即SSM架構(gòu)模式。
(三)階段三:SSM
1.該模式中,Spring扮演Controller角色,SpringMVC扮演View角色(當(dāng)然,小型系統(tǒng),可直接采用SpringMVC即可),Mybatis扮演DB訪問技術(shù)
SSM架構(gòu)模式,在當(dāng)前的JavaEE中,算是比較流行的開發(fā)模式了,也是大都數(shù)企業(yè)的技術(shù)選型之一。當(dāng)然,能與SSM相媲美的另一種設(shè)計
思想,那就是微服務(wù)思想(SpringBoot+cloud技術(shù)等),本篇文章不談及微服務(wù)。
二 SSM核心框架概述
(一)Spring框架
Spring框架目前是JavaWeb開發(fā)的主流框架,也可以說是諸多企業(yè)的必選框架,它大致包括六大模塊。
1.Spring核心容器。該容器是Spring框架最核心部分,它管理著Spring運用中bean的創(chuàng)建、配置和管理等
2.Spring AOP。該模塊為面向切面和DI(依賴注入)提供了很好的支持
3.數(shù)據(jù)庫訪問與集成模塊
4.Web與遠(yuǎn)程調(diào)用技術(shù)
5.Instrument模塊
6.Test模塊
(二) Mybatis框架
1.根據(jù)Mybatis源碼,將其抽象為三層:基礎(chǔ)支持層,核心處理層和接口層
2.基礎(chǔ)支持層包括:數(shù)據(jù)源、事務(wù)管理、日志、類型轉(zhuǎn)換、緩存、Bind、解析器等
3.核心處理層包括:配置解析、配置映射、SQL解析、SQL執(zhí)行、結(jié)果集映射、插件等
4.接口層主要提供JAVA API
Javaweb開發(fā)視頻教程:http://www.bjpowernode.com/v77/
免費html視頻教程:http://www.bjpowernode.com/v27/
全套css基礎(chǔ)教程:http://www.bjpowernode.com/v67/
Javascript視頻教程下載:http://www.bjpowernode.com/v68/
ajax視頻教程全集【免費下載】:http://www.bjpowernode.com/v31/
菜鳥jquery教程下載:http://www.bjpowernode.com/v30/
SSM框架整合技術(shù):http://www.bjpowernode.com/v92/
以上就是長沙牛耳教育Java培訓(xùn)機構(gòu)小編介紹的“最好的Javaweb教程JavaWeb架構(gòu)演變”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
Java學(xué)習(xí)路線清單,快速進(jìn)階Java
Java編程初學(xué)者要如何進(jìn)階