<pre id="ff7yo"></pre>

      <form id="ff7yo"><legend id="ff7yo"></legend></form>
        <nav id="ff7yo"><listing id="ff7yo"></listing></nav><nav id="ff7yo"></nav>

        <nav id="ff7yo"><listing id="ff7yo"></listing></nav>
        <small id="ff7yo"></small><nav id="ff7yo"><dd id="ff7yo"></dd></nav>
      1. <nav id="ff7yo"></nav>
          <form id="ff7yo"></form><nav id="ff7yo"></nav>
          <nav id="ff7yo"></nav>
          <sub id="ff7yo"></sub>
          更多課程 選擇中心

          軟件測試培訓
          達內IT學院

          400-111-8989

          一般的Java項目后臺都有什么技術?

          • 發布:軟件測試培訓
          • 來源:軟件測試問答
          • 時間:2018-01-09 16:25

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

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

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

          首先我們從網站的架構談起。

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

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

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

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

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

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

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

          很多人會問我們為什么需要應用服務器?顧名思義,應用服務器就是用來運行我們的應用代碼的。這里需要特別提到的是,Java Web用到了像Jsp,servlet這樣的動態web技術,而這些技術的代碼是必須運行中應用服務器中的。所以當我們寫好應用代碼后,需要把自己的應用部署到應用服務器上。應用部署好后,那么用戶們該怎么訪問呢?直接訪問應用服務器嗎?這個時候就需要web服務器出場了。在互聯網上,最強大的應用層協議當屬http協議了,人們訪問網站就是通過http協議來進行訪問的,而Web服務器就是支持http協議的服務器,所以就叫http服務器。

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

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

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

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

          知識點列表:

          開發:

          1. 視圖層技術——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker

          2. 持久層技術——MyBatis,Hibernate

          3. Spring , Spring MVC

          4. 項目構建工具Maven

          5. 日志Log4j

          6. 版本控制 Git

          數據庫技術:

          1. SQL語句

          2. 參數調優

          操作系統:

          1. 熟練掌握一種Linux系統,原理,Shell命令

          服務器技術:

          1. 熟練使用并理解一個應用服務器技術的原理(Tomcat)

          2. 熟練使用并理解一個Web服務器技術的原理(Nginx)

          附加:

          緩存技術:

          1. 熟練使用并理解一種緩存技術(Redis,Memcache,EhCache)

          非關系型數據庫

          2. 熟練使用并理解一種非關系型數據庫(MongoDB)

          中間件技術:

          1. JMS:activeMQ和kafka

          2. RPC: Dubbo

          設計模式:

          1. 了解并能夠使用幾種最主要的設計模式

          網絡:

          1. 熟練使用并理解一個網絡開發技術(Netty)

          2. 熟悉http,TCP協議

          Java虛擬機:

          1. 熟悉jvm運行原理,內存分布

          2. jvm參數調優

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:學習接口測試的同時如何玩轉Python?
          下一篇:相殺相愛? 開發與軟件測試們怎么才能好好相處?

          參加軟件測試培訓靠譜不?

          軟件測試培訓都學寫什么?

          軟件測試工程師需要我們掌握什么技術?

          學習軟件測試的優勢是什么

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          陜西省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          神马影院-战旗影院-首播影院-新视觉影院-在线观看中文字幕dvd播放 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>