帶着萌新看springboot源碼06

  這節來講個你們都比較熟悉的東西,就是servlet三大組件,servlet、filter、listener,再說說springboot的內置tomcat。java

  也許還會說一下tomcat的運行原理,還有,springboot不是不支持jsp嗎(是由於嵌入式tomcat的緣由),那我就讓springboot支持jsp,其餘的仍是同樣。web

  比較長,可能要分爲兩節。spring

1.servlet配置瀏覽器

  想必你們不會陌生servlet配置,寫個類繼承HttpServlet,而後在原來的web.xml文件中配置<servlet-name><servlet-class>還有配置servlet的映射路徑<servlet-mapping>,忘記的小夥伴就回頭看看啊。tomcat

  如今的springboot配置servlet,也差很少,寫個servlet,可是記住,springboot不能直接識別servlet,須要藉助一個工具ServletRegistrationBean(xxxBean在學spring的時候應該很常見,本質上仍是一個Bean,可是有可以生產bean的能力,相似一個簡單的工廠類)springboot

 

  

  咱們接着隨意找個配置類(我圖方便,就在那個main方法的主配置類加了),加入以下代碼:併發

  

  ok,就這樣,而後運行,瀏覽器輸入網址app

2.配置Filterssh

  配置和上面差很少,寫個Filter實現類,利用FilterRegistrationBean往容器裏添加filterjsp

  

  而後運行springboot,輸入xxxxx/hehe就好了

 

3.配置listener

  listener最容易,由於前面兩個還有配置url映射,這個listener不用配。寫個listener,利用ServletListenerRegistrationBean添加到容器裏。

 

   啓動和關閉應用就能看到結果:

 

 最後的就是注意ServletListenerRegistrationBean這個類要傳入泛型,打開這個類,能夠看到咱們能夠定製監聽器的類型

 

 4,簡單說說嵌入式servlet容器(springboot默認固然是用tomcat)

  springboot應用和之前的ssm等應用最大的不一樣是,springboot能夠打成jar包,而後在裝有java運行環境的電腦,就能用java -jar xxx.jar就可以直接運行一個springboot應用,很是方便,可是缺點是不支持jsp;

  而ssm、ssh等的就要達成war包,而後在新的電腦上配置java環境,下載tomcat,再配置tomcat和java的版本,而後才能部署應用,運行,emmmm....估計要好久!

  形成這種結果的最大緣由就是springboot裝的是小tomcat(咳咳,這是我本身爲了方便理解才說的,標準稱呼是嵌入式servlet容器,英文全程:EmbeddedServletContainer),如下假如看到小tomcat,就要理解是嵌入式servlet容器啊(EmbeddedServletContainer),這麼長的單詞必定要記下來,由於後面會有更長的.....

  首先簡單說說servlet容器種類。常見的Tomcat(springboot默認),Jetty(適用於長鏈接,好比聊天這種),Undertow(不支持jsp,可是併發性能很是好),各有優點。

  打開pom配置文件,能夠看到

 

而後將tomcat變爲jetty就能夠了,maven就會自動幫你下載對應的jar包

 

   運行springboot,控制檯輸出以下所示,你就成功了。

 

  到這裏,springboot配置servlet三大組件以及切換嵌入式servlet容器就講完了,接下來幹什麼想必都很清楚,固然是怎麼修改容器的默認配置以及運行原理啊!

  不知道你們有沒有發現上圖端口是8081(默認8080),在配置文件是怎麼配置的(之前說過,估計不少人都知道),爲何會起做用?我能不能用@Bean的方式修改容器默認參數呢?以及其中的運行原理?固然,也會帶着你們一塊兒走走從主配置類開始,經過一個run方法,逐漸的就運行容器的過程。

  後面還會說說不用嵌入式servlet容器的方式,我就用我外界下載的tomcat和springboot應用一塊兒用,而且還支持jsp。

相關文章
相關標籤/搜索