你看不懂的spring原理是由於不知道這幾個概念

背景web

問題從一杯咖啡開始。編程

今天我去樓下咖啡機買了一杯「粉黛拿鐵」。製做過程當中顯示:tomcat

我取了作好的粉黛拿鐵,喝了一口,果真就是一杯熱巧克力。咦咦咦,說好的拿鐵呢?雖然我對「零點吧」的咖啡評價很高,以爲味道不亞於星爸爸。可是不能否認它確實給了我一杯假的拿鐵。服務器

如今不少技術專家比如品鑑咖啡的專家。他們並不須要知道咖啡豆和可可豆的區別,更不知道這兩種植物長在樹上是什麼樣子。不要緊,這並不影響他們區別一杯咖啡是拿鐵、摩卡仍是卡布奇諾。就好像工做中遇到團隊配合的狀況,他們並不須要知作別人團隊的產品是怎麼實現的,只須要在他們出問題的時候讓他們幫忙解決。因此,如今不少工做招高級別的人都要求良好的溝通和推進能力。技術能力反而考察的沒有那麼細緻。架構

可是做爲技術人員,瞭解底層是很重要的。由於咱們不是買咖啡的,而是生產咖啡機的。有一天,咖啡機不工做了,通過分析監控報警和日誌大數據,終於找到緣由:一粒咖啡豆過小卡到了凹槽裏。清理了這粒咖啡豆,咖啡機又正常工做了。這就結束了嗎?框架

 

不,咱們要覆盤,用5Why分析法找到問題的根因。測試

Q:爲何咖啡機會不工做?大數據

A:由於一粒咖啡豆卡在裏凹槽裏。線程

Q:爲何會卡在凹槽裏?設計

A:由於這粒咖啡豆過小了,就掉下去了。

Q:爲何過小了就會掉下去?

A:由於咖啡豆基本都是圓形,咖啡豆之間有很大的空隙,彼此沒有壓力。只是受到重力影響,就掉下去了。

Q:爲何咖啡豆都是圓形,不能生產出方形,彼此緊密契合的咖啡豆嗎?

 

這時候就是後悔不知道咖啡豆到底長在哪一種樹上的時間了。不瞭解因此沒有辦法作出合理的改變。

如今咱們都喜歡用SpringBoot。平時工做的好好的,忽然公司要求作一個基礎組件的升級,咦咦咦,本地運行的好好的。發佈到服務器上跑不起來。當初搭建開發基礎框架的小哥早已離職,是看着那堆日誌發愣呢?仍是瞭解一下里面的基礎概念順藤摸瓜呢?廢話到此爲止。

 

概念

SpringBoot是什麼?

SpringBoot是一個框架和編程規範。它化簡了不少個框架和組件的使用,一站式簡單的完成文件配置和應用部署。由於它內置服務器並裝備啓動類代碼,能夠快速開啓一個Web容器。

Web容器是什麼?

Web容器是一種能夠處理從客戶端發出請求的應用程序。在服務器中一個端口就對應一個提供相應服務的程序。在Java方面,web任憑器通常是指Servlet容器。

Servlet是什麼?

Servlet只是一個接口。它聲明瞭Servlet的生命週期的三個基本方法:init()、service()和destroy()。Web容器會在特定時間調用這些方法。Servlet是提供了一個標準,是J2EE的13個標準接口規範之一。

J2EE是什麼?

J2EE(Java 2 Platfrom, Enterprise Edition)最初是一個爲大企業主機級的計算相似而設計的Java平臺。這個標準給提供可重用模塊組件組件提供了土壤。就是定義一系列的接口,大家要實現什麼功能都要在這些接口基礎上。根據場景Java2平臺主要包括標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。

Java2平臺是什麼?

Sun公司在1998年發表JDK1.2版本的時候,使用了新名字Java 2 Platform。修改後的JDK成爲Java 2 Platfrom Software Developing Kit 即J2SDK。

Web容器和Netty的關係

Web容器(如tomcat、jetty)主要處理從客戶端傳過來的消息,將消息分給worker線程來處理。worker線程作的事情就是經過Servlet來作的。而接受消息線程和worker線程之間的協調溝通工做目前主流是Netty來作的。

一張圖大致表示一下他們的關係:

 

總結

若是作一件事情很麻煩,那必定有一個好方法。

 

相關閱讀

四象限分析法分析你是否適合作管理

復聯4裏用到的方法論

年紀大了,是否該往管理方向轉型?

架構視角 - DDD、TDD、MDD領域驅動、測試驅動仍是模型驅動?

相關文章
相關標籤/搜索