1. 無框架傳統(tǒng)開發(fā)模式&為什么要用框架
傳統(tǒng)web應(yīng)用開發(fā)模式:jsp膀哲,包含前端代碼跃捣,業(yè)務(wù)處理邏輯
javaBean:可重用組件,就是會被多次調(diào)用的類
最簡單的jsp代碼:
<%@page contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<h1>你好 JSP</h1>
<br>
<%=new Date().toLocaleString()%>
問題:
- 前后端代碼耦合今穿,并行開發(fā)難度大
- javaBean和jsp耦合,維護(hù)不方便
- 代碼難以重用
MVC設(shè)計模式:
-
Model:數(shù)據(jù)模型怠蹂,JavaBean的類,用來進(jìn)行數(shù)據(jù)封裝少态。
- 比如把用戶信息從數(shù)據(jù)庫中讀出后城侧,封裝為User類。
- 或者讀取所有用戶彼妻,再按照注冊時間從早到晚排序后返回
-
View:指JSP嫌佑、HTML用來展示數(shù)據(jù)給用戶
-
按照表格方式展示所有用戶
-
序號 名字 1 張三 2 李四
-
-
按照
<li>
方式展示所有用戶- 張三 - 李四
-
-
Controller:用來接收用戶的請求,整個流程的控制器侨歉。用來進(jìn)行數(shù)據(jù)校驗等屋摇。
- 控制層是大腦,如果訪問/showUsers ,我去讓model準(zhǔn)備用戶數(shù)據(jù)幽邓,再跳到view顯示
早期的 MVC 模型:Servlet + JSP + Java Bean 炮温,MVC的設(shè)計模式可以比較好地實現(xiàn)web應(yīng)用的業(yè)務(wù)邏輯,容易實現(xiàn)高內(nèi)聚低耦合的開發(fā)要求牵舵。
但是這樣雖然實現(xiàn)了MVC柒啤,但是單純依靠開發(fā)者自行約束,由于沒有統(tǒng)一的規(guī)范畸颅,他們可能寫成千奇百怪的形式担巩,不利于維護(hù),而且可能有漏洞没炒。
為了方便開發(fā)和形成規(guī)范涛癌,大公司就開發(fā)了一些可重用的框架,說大家都來用我的框架吧窥浪,簡單快速祖很,功能齊全。
之前學(xué)過的struts2就是實現(xiàn)mvc的框架之一漾脂。
另外還有springMVC,較之mvc改進(jìn)后形成了框架胚鸯,我們只要根據(jù)這個框架要求的做骨稿,就可以輕松搭建基于MVC的web應(yīng)用。
2. 如何選擇框架
別的框架先不介紹姜钳,在javaWeb里坦冠,搭建一個web應(yīng)用目前流行這么幾種框架。
早期框架包:SSH哥桥,三個框架組成
- spring:潤滑劑辙浑,連接struts2和hibernate
- struts2:控制層
- hibernate:數(shù)據(jù)庫訪問框架
各自都有問題,比如struts2有漏洞拟糕,運(yùn)行效率不高判呕,hibernate配置復(fù)雜等等倦踢。
于是第二代比較流行的框架包是:SSM
spring
springMVC (替換了struts2)
-
mybatis(替換了hibernate)
架構(gòu)圖:
但是學(xué)了SSM后,發(fā)現(xiàn)配置也挺多侠草,也挺復(fù)雜辱挥,人都是偷懶的人,所以有人就想边涕,能不能在框架的基礎(chǔ)上再開發(fā)一個框架晤碘,可以不用配置那么多,拿起來就可以用的框架功蜓?
于是誕生了springBoot框架园爷,這個框架在SSM基礎(chǔ)上做了很多改進(jìn),對于配置式撼,它采用約定俗成的方式進(jìn)行默認(rèn)配置腮介,這樣拿起來就能用。而且系統(tǒng)模塊化使得可以想用什么模塊就加什么模塊端衰。
發(fā)展至今叠洗,springBoot也衍生出很多產(chǎn)品,比如springboot2,spring cloud等等一些高度集成化的框架或者說架構(gòu)旅东。
3. 如何學(xué)習(xí)框架
介紹了這么多灭抑,應(yīng)該從什么開始呢?
- 剛開始可以選擇SSH或者SSM
- S S H 或 S S M中的框架都是可以獨(dú)立運(yùn)行的抵代,跟著教程一個個擊破比較好腾节。順序沒關(guān)系,因為分屬不同模塊荤牍。
- 框架是很龐大和精妙的系統(tǒng)案腺,一開始不要奢求懂得面面俱到,過分追求原理細(xì)節(jié)康吵,先跑通程序劈榨,掌握現(xiàn)象,再研究本質(zhì)比較好晦嵌。
- 每天4小時學(xué)習(xí)同辣,一個月內(nèi)可以初步掌握SSM或者SSH的使用,初步搭建出完整項目惭载。
java學(xué)習(xí)網(wǎng)站:https://how2j.cn/
J2EE(javaweb基礎(chǔ))
框架
或者b站搜索視頻教程旱函,推薦黑馬程序員。