偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一般的Java項目后臺都有什么技術(shù)?

開發(fā) 后端
最近自己做了幾個Java Web項目,有公司的商業(yè)項目,也有個人做著玩的小項目,寫篇文章記錄總結(jié)一下收獲,列舉出在做項目的整個過程中,所需要用到的技能和知識點,帶給還沒有真正接觸過完整Java Web項目的同學一個比較完整的視角,提供一個所謂的“大局觀”,也以便于同學們更有針對性地學習。

 一般的java項目后臺都有什么技術(shù),比如Spring MVC,shiro 還有什么技術(shù)?

最近自己做了幾個Java Web項目,有公司的商業(yè)項目,也有個人做著玩的小項目,寫篇文章記錄總結(jié)一下收獲,列舉出在做項目的整個過程中,所需要用到的技能和知識點,帶給還沒有真正接觸過完整Java Web項目的同學一個比較完整的視角,提供一個所謂的“大局觀”,也以便于同學們更有針對性地學習。

當然,這里所用到的例子項目是非常初級,簡單的項目。

[[216374]]

首先我們從網(wǎng)站的架構(gòu)談起。

一般來說,我們將網(wǎng)站分為前端和后端。前端主要負責頁面的展示,后端則是業(yè)務(wù)邏輯的實現(xiàn)。由于html5的興起,前端領(lǐng)域已經(jīng)越來越火熱,前端技術(shù)發(fā)展極快,今天我們不做過多介紹,因為現(xiàn)在的互聯(lián)網(wǎng)公司,前端工程師和Java工程師是完全不同的兩種技術(shù)崗位。所以我們還是以Java的角度去看待一個項目。在前端沒有那么火的前幾年,或者說在經(jīng)典的Java Web的開發(fā)模式中,我們使用Jsp技術(shù)來作為展現(xiàn)層的實現(xiàn),其實也就是所謂的前端。

當然只懂得Jsp是不夠的還需要懂html,css,js,ajax等一些前端的基礎(chǔ)技術(shù),Jsp技術(shù)在其中扮演外層包裝的角色。那么后端呢?后端是由于一些實現(xiàn)了業(yè)務(wù)邏輯Java代碼和數(shù)據(jù)庫組成。說到這,就可以推出Web開發(fā)中經(jīng)典的MVC模式,Model-View-Controller。View,,就是指表現(xiàn)層,Model,是用來承載數(shù)據(jù)的抽象結(jié)構(gòu),而Controller則是View和Model的橋梁。View存在與前端代碼中,Controller,Model存在與后端代碼中。

在后端代碼中,為了保證代碼的整潔,易讀性,一般會采用分層的辦法,自頂向下分為controller層,service層,dao層,數(shù)據(jù)層或者叫持久層(直接與數(shù)據(jù)庫打交道)。有時候,為了達到解耦的目的,會在上述基層中間加入響應(yīng)的接口層,以使得接口與實現(xiàn)分離。在更加大型的網(wǎng)站中,會出現(xiàn)更加復(fù)雜的架構(gòu),比如dao層與數(shù)據(jù)層之間要有緩存層,或者訪問壓力增大后,需要使用集群,負載均衡等高級技術(shù),但在這里,我們就不深入討論復(fù)雜架構(gòu)了。

所以以上我們看到,一個Web 項目前端需要表現(xiàn)層,后端有controller層,service層,dao層,持久層。在表現(xiàn)層,除了剛才提到的html,css,js,ajax,jsp等基礎(chǔ)知識,在實際開發(fā)中,我們還會用到許多框架技術(shù),比如tiles,velocity,freemarker等模板技術(shù)來簡化表現(xiàn)層的開發(fā)。在持久層,除了jdbc外,還有Mybatis,Hibernate等框架來提高開發(fā)效率。

在Java Web中最耀眼的當屬Spring了,Spring作為一個貫穿整個項目的框架,為項目開發(fā)帶來依賴注入,面向切面編程的功能。除了這些,我們還需要熟練掌握一種關(guān)系型數(shù)據(jù)庫的使用,如MySQL,Oracle等,當然更好地話還需要掌握一種非關(guān)系型數(shù)據(jù)庫,MongoDB,Redis。

掌握了以上知識點,恭喜你,你已經(jīng)可以開始寫Java Web項目了。

但是只會寫而不會部署,我們的項目仍然不能拿出來用。所以說到這里,我們的項目代碼已經(jīng)寫好,接下來該怎么辦呢?當然是需要找一個容器來運行我們的代碼。這里的容器是當然不是指Java里的數(shù)據(jù)類型,而是指應(yīng)用服務(wù)器,此處要特別區(qū)分應(yīng)用服務(wù)器與Web服務(wù)器,至于Web服務(wù)器是什么,稍后會介紹。(如果有同學不是很清楚服務(wù)器的概念,可以先看下一段,再回來看)目前,市面主要流行的應(yīng)用服務(wù)器有Tomcat,Jetty,JBoss等。

很多人會問我們?yōu)槭裁葱枰獞?yīng)用服務(wù)器?顧名思義,應(yīng)用服務(wù)器就是用來運行我們的應(yīng)用代碼的。這里需要特別提到的是,Java Web用到了像Jsp,servlet這樣的動態(tài)web技術(shù),而這些技術(shù)的代碼是必須運行中應(yīng)用服務(wù)器中的。所以當我們寫好應(yīng)用代碼后,需要把自己的應(yīng)用部署到應(yīng)用服務(wù)器上。應(yīng)用部署好后,那么用戶們該怎么訪問呢?直接訪問應(yīng)用服務(wù)器嗎?這個時候就需要web服務(wù)器出場了。在互聯(lián)網(wǎng)上,最強大的應(yīng)用層協(xié)議當屬http協(xié)議了,人們訪問網(wǎng)站就是通過http協(xié)議來進行訪問的,而Web服務(wù)器就是支持http協(xié)議的服務(wù)器,所以就叫http服務(wù)器。

Web服務(wù)器接收http請求,然后再將請求轉(zhuǎn)交給應(yīng)用服務(wù)器。有人會問用戶直接訪問應(yīng)用服務(wù)器不好嗎?為什么要給web服務(wù)器,然后再到應(yīng)用服務(wù)器?從功能實現(xiàn)上來說,是可以的。許多應(yīng)用服務(wù)器,比如Tomcat是具有web服務(wù)器的功能,所以直接訪問也可以。但是由于在實際的生產(chǎn)環(huán)境中,由于負載均衡,cdn加速等原因,我們還是需要在應(yīng)用服務(wù)器的前端再加一個web服務(wù)器來提高訪問效率,常用的有Nginx,Apache這樣的服務(wù)器。

之前老是在講這個服務(wù)器,那個服務(wù)器,不知道有沒有同學聽懵了。其實服務(wù)器這個概念,我們應(yīng)該在真正接觸計算機專業(yè)領(lǐng)域之前早就聽說過,比如以前打游戲覺得卡的時候大家都時不時會用到服務(wù)器這個詞匯。但是我真正理解并研究服務(wù)器是在學習tomcat, jetty之后才開始的。那么服務(wù)器到底什么呢?服務(wù)器這個概念其實很簡單,就是一臺電腦,那它和我們?nèi)粘S玫碾娔X有什么區(qū)別?

第一,它一般沒有顯示器,它只有主機。第二,它的操作系統(tǒng)不同于我們常用的windows , Mac OS。更多的是*nix系統(tǒng)。第三,它運行了一些服務(wù)器端軟件。比如說,我們上文提到的Tomcat , Jetty , Nginx,Apache,其實這些都是服務(wù)器軟件,只是主機運行了這些軟件,所以有時候大家就混淆了叫法。所以所謂的數(shù)據(jù)庫服務(wù)器,大家也知道了,其實就是運行了數(shù)據(jù)庫的主機。說到服務(wù)器,我們所需要掌握的重點知識就是服務(wù)器操作系統(tǒng),也就是*nix系統(tǒng),比如CentOS , Ubuntu等。

說到這里,其實一個簡單的完整的Java Web項目就差不多了。我們簡單回顧一下,首先,我們需要利用各種框架和開發(fā)技術(shù)寫出應(yīng)用代碼。接下來,我們需要一個臺安裝了*nix系統(tǒng)的主機,在上面安裝好Web服務(wù)器軟件,應(yīng)用服務(wù)器軟件,再把我們的應(yīng)用代碼部署到應(yīng)用服務(wù)器上?,F(xiàn)在我們只需要獲取到主機的IP地址,就能夠遠程訪問應(yīng)用了。

知識點列表:

開發(fā):

  • 1. 視圖層技術(shù)——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker
  • 2. 持久層技術(shù)——MyBatis,Hibernate
  • 3. Spring , Spring MVC
  • 4. 項目構(gòu)建工具Maven
  • 5. 日志Log4j
  • 6. 版本控制 Git

數(shù)據(jù)庫技術(shù):

  • 1. SQL語句
  • 2. 參數(shù)調(diào)優(yōu)

操作系統(tǒng):

  • 1. 熟練掌握一種Linux系統(tǒng),原理,Shell命令

服務(wù)器技術(shù):

  • 1. 熟練使用并理解一個應(yīng)用服務(wù)器技術(shù)的原理(Tomcat)
  • 2. 熟練使用并理解一個Web服務(wù)器技術(shù)的原理(Nginx)

附加:

緩存技術(shù):

  • 1. 熟練使用并理解一種緩存技術(shù)(Redis,Memcache,EhCache)
  • 非關(guān)系型數(shù)據(jù)庫
  • 2. 熟練使用并理解一種非關(guān)系型數(shù)據(jù)庫(MongoDB)

中間件技術(shù):

  • 1. JMS:activeMQ和kafka
  • 2. RPC: Dubbo

設(shè)計模式:

  • 1. 了解并能夠使用幾種最主要的設(shè)計模式

網(wǎng)絡(luò):

  • 1. 熟練使用并理解一個網(wǎng)絡(luò)開發(fā)技術(shù)(Netty)
  • 2. 熟悉http,TCP協(xié)議

Java虛擬機:

  • 1. 熟悉jvm運行原理,內(nèi)存分布
  • 2. jvm參數(shù)調(diào)優(yōu)
責任編輯:武曉燕 來源: 知乎
相關(guān)推薦

2022-04-02 10:52:33

Go開發(fā)面試

2020-06-09 08:09:07

機器學習統(tǒng)計學習無監(jiān)督學習

2010-10-08 14:23:08

MySQL中INSER

2011-09-08 11:35:18

2017-08-31 14:09:26

數(shù)據(jù)庫MySQLSQL優(yōu)化

2020-04-16 16:48:22

數(shù)據(jù)中心DT時代數(shù)據(jù)

2019-09-09 15:18:30

物聯(lián)網(wǎng)5G技術(shù)

2010-05-05 11:23:07

信息技術(shù)人

2017-12-22 22:55:29

弱電工程綜合布線布線

2021-08-19 09:16:29

MySQL數(shù)據(jù)庫優(yōu)化器

2021-08-16 08:42:31

MySQL查詢數(shù)據(jù)庫

2022-04-02 15:08:54

API調(diào)試

2011-04-06 16:41:25

LCPPPPIPCP

2010-09-14 10:55:14

DIV CSS網(wǎng)頁制作

2012-06-27 09:29:49

程序員

2019-06-05 15:23:09

Redis緩存存儲

2023-07-27 08:34:57

軟件迭代管理

2013-01-20 21:55:24

移動策略

2011-07-08 09:42:03

2018-06-28 12:47:30

點贊
收藏

51CTO技術(shù)棧公眾號