基于Java的Web應(yīng)用開發(fā)技術(shù)已成為目前Web開發(fā)的主流技術(shù),作為一名Java程序員,到底要掌握什么技術(shù)才能完成一個JavaWeb項目呢?
一起學(xué)起來吧~
先放一張技術(shù)棧思維導(dǎo)圖:
什么是技術(shù)棧?
開發(fā)一個普通管理系統(tǒng),會用到:
SprinBoot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,這些技術(shù)合起來就可以稱為技術(shù)棧。
大致分為:前端、后端、中間件、數(shù)據(jù)庫和工具。
一、前端
1、JSP
JSP全稱Java Server Pages,是一種動態(tài)網(wǎng)頁開發(fā)技術(shù)。它使用JSP標(biāo)簽在HTML網(wǎng)頁中插入Java代碼。
JSP本質(zhì)上是一個Servlet,主要用于實現(xiàn)JavaWeb應(yīng)用程序的用戶界面部分。
第1個 JSP 程序
out.println("Hello World!");
2、前端框架
DWZ、EasyUI、EXT、BootStrap、KendoUI都是基于基于HTML、CSS、JavaScript/jQuery的一些富文本客戶端UI框架,在當(dāng)時簡直是后端開發(fā)人員的福音。
這些框架特點就是官網(wǎng)上提供了各種組件的使用方法,后端人員只要套到JSP頁面中,進(jìn)行數(shù)據(jù)渲染即可。
這些UI框架風(fēng)格基本已經(jīng)固定,更適合開發(fā)一些管理類系統(tǒng),都包括:強(qiáng)大的數(shù)據(jù)源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。
3、DWZ
是中國人自己開發(fā)的基于jQuery實現(xiàn)的Ajax RIA開源框架,設(shè)計目標(biāo)是簡單實用,快速開發(fā),降低Ajax開發(fā)成本。
4、EasyUI
Easyui是一種基于jQuery的用戶界面插件集合,為創(chuàng)建現(xiàn)代化,互動,JavaScript應(yīng)用程序,提供必要的功能。
使用Easyui你不需要寫很多代碼,你只需要通過編寫一些簡單HTML標(biāo)記,就可以定義用戶界面,為網(wǎng)頁開發(fā)的時間和規(guī)模。
5、BootStrap
Bootstrap,來自Twitter,是目前很受歡迎的前端框架。Bootstrap是基于 HTML、CSS、JavaScript的,它簡潔靈活,使得Web開發(fā)更加快捷。
6、HTML
前端框架都是基于HTML的,所以你需要掌握Css、JavaScript、jquery基礎(chǔ)。
7、VUE框架
Vue是一種漸進(jìn)式JavaScript框架,完美融合了第三方插件和UI組件庫,它和jQuery的區(qū)別在于,Vue無需開發(fā)人員直接操作DOM節(jié)點,就可以改變頁面渲染內(nèi)容,在應(yīng)用開發(fā)者具有一定的HTML、CSS、JavaScript的基礎(chǔ)上,能夠快速上手,開發(fā)出優(yōu)雅、簡潔的應(yīng)用程序模塊。
二、后端
1、Struts
Struts是Apache基金會的一個開源項目,廣泛應(yīng)用于大型互聯(lián)網(wǎng)企業(yè)、政府、金融機(jī)構(gòu)等網(wǎng)站建設(shè),并作為網(wǎng)站開發(fā)的底層模板使用。
一個是Stuts1 ,一個是Stuts2。技術(shù)方面,Stuts1有個核心控制器,但是只提供了一個接口,也就是execute,還要配置action、form之類的,很麻煩,所以依賴性比較強(qiáng);
而Stuts2是針對攔截器開發(fā)的,也就是所謂的AOP思想,可以配置多個action,用起來比較方便,但是因為請求之前的攔截器有一些注入的操作,速度相對Stuts1來說慢一點。
2、Spring
Spring框架是個輕量級的Java EE框架。所謂輕量級,是指不依賴于容器就能運行的。
Spring以IoC、AOP為主要思想,其中IoC,Inversion of Control 指控制反轉(zhuǎn)或反向控制。在Spring框架中我們通過配置創(chuàng)建類對象,由Spring在運行階段實例化、組裝對象。AOP,Aspect Oriented Programming,面向切面編程,其思想是在執(zhí)行某些代碼前執(zhí)行另外的代碼,使程序更靈活、擴(kuò)展性更好,可以隨便地添加、刪除某些功能。Servlet中的Filter便是一種AOP思想的實現(xiàn)。
Spring同時也是一個“一站式”框架,即Spring在JavaEE的三層架構(gòu)[表現(xiàn)層(Web層)、業(yè)務(wù)邏輯層(Service層)、數(shù)據(jù)訪問層(DAO層)]中,每一層均提供了不同的解決技術(shù)。
3、持久層框架Mybatis
MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。它是輕量級持久層框架,由ibatis演化而來。它自動連接數(shù)據(jù)庫,將數(shù)據(jù)庫的結(jié)果集封裝到對象中POJO。
Mybatis它是輕量級持久層框架,由ibatis演化而來。它自動連接數(shù)據(jù)庫,將數(shù)據(jù)庫的結(jié)果集封裝到對象中POJO。
4、Spring Boot
Spring Boot基本上是Spring框架的擴(kuò)展,它消除了設(shè)置Spring應(yīng)用程序所需的XML配置,為更快,更高效的開發(fā)生態(tài)系統(tǒng)鋪平了道路。
5、分布式/微服務(wù)Spring Cloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署。
6、安全框架Shiro
Apache Shiro是一個開源的輕量級的Java安全框架,它提供身份驗證、授權(quán)、密碼管理以及會話管理等功能。相對于Spring Security, Shiro框架更加直觀、易用,同時也能提供健壯的安全性。
Shiro框架相比于Spring Security更加輕量級,但是它也提供了一些基礎(chǔ)的,能滿足日常開發(fā)所需的權(quán)限控制功能。
7、項目管理Maven
Maven是一個構(gòu)建工具,這個構(gòu)建工具能夠幫助你更好的管理包的依賴、還能夠為你實現(xiàn)項目的熱部署、還能為你運行所有的測試用例、還能夠為你項目的打包、發(fā)布、還能夠?qū)崿F(xiàn)項目的多模塊構(gòu)建。
8、服務(wù)器軟件Tomcat
Tomcat是由Java開發(fā)且符合JavaEE的Servlet規(guī)范的JSP服務(wù)器,是Apache的擴(kuò)展,其主要特性如下:
1、主要用于解析JSP/Servlet,一般JAVA程序語言都需要Tomcat環(huán)境支持;
2、支持HTML靜態(tài)頁,但總體運行效率沒有Apache高;
3、內(nèi)置了一個HTTP服務(wù)器用于支持靜態(tài)內(nèi)容,可以通過Tomcat的配置管理工具實現(xiàn)與Apache整合。
Apache服務(wù)器是由C語言實現(xiàn)的,專門用來提供HTTP服務(wù),具有簡單、速度快、性能穩(wěn)定特征優(yōu)勢,主要特性如下:
1、主要用于解析靜態(tài)文本,并發(fā)性能高,側(cè)重于HTTP服務(wù);
2、不支持動態(tài)請求如:CGI、Servlet/JSP、PHP、ASP等語言;
3、可擴(kuò)展性強(qiáng),可以通過插件支持PHP語言,特定情況下可與Tomcat實現(xiàn)連通;
4、是目前全球用戶使用量最duo的Web服務(wù)器。
三、中間件
四、數(shù)據(jù)庫
常見的數(shù)據(jù)管理系統(tǒng)主要有:Oracle、Mysql、SQL Server、Access、TiDB。
這幾個數(shù)據(jù)庫優(yōu)缺點都比較明顯,大家可以在網(wǎng)上查詢下相關(guān)資料。