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