一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 選擇Spring Boot項目的內嵌容器的理由

選擇Spring Boot項目的內嵌容器的理由

2021-01-30 12:27jianshu Java教程

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。這篇文章主要介紹了選擇Spring Boot項目的內嵌容器,需要的朋友可以參考下

spring boot是由pivotal團隊提供的全新框架,其設計目的是用來簡化新spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,spring boot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

spring boot繼承了spring的優點,并新增了一些新功能和特性:

(1)springboot是伴隨著spring4.0誕生的,一經推出,引起了巨大的反向;

(2)從字面理解,boot是引導的意思,因此springboot幫助開發者快速搭建spring框架;

(3)springboot幫助開發者快速啟動一個web容器;

(4)springboot繼承了原有spring框架的優秀基因;

(5)springboot簡化了使用spring的過程;

(6)spring boot為我們帶來了腳本語言開發的效率,但是spring boot并沒有讓我們意外的新技術,都是java ee開發者常見的額技術。

spring boot工程的默認web容器是tomcat,但是開發人員可以根據需要修改,例如使用jetty或者undertow,spring boot提供了對應的starters。

how do

  • 在pom文件中排除tomcat的starter
?
1
2
3
4
5
6
7
8
9
10
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-web</artifactid>
 <exclusions>
  <exclusion>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter-tomcat</artifactid>
  </exclusion>
 </exclusions>
</dependency>
  • 增加jetty依賴
?
1
2
3
4
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-jetty</artifactid>
</dependency>
  • 通過mvn spring-boot:run命令啟動,可以看到jetty已經啟動。

選擇Spring Boot項目的內嵌容器的理由

jetty容器啟動

ps:如果您使用的gradle,則可以參考官方文檔的做法——use jetty instead of tomcat

分析

支持上述切換的原因是spring boot的自動配置。我首先在spring-boot-starter-web依賴中排除tomcat依賴,免得它跟jetty形成依賴沖突。spring boot根據在classpath下掃描到的容器類的類型決定使用哪個web容器。

在idea中查看embeddedservletcontainerautoconfiguration類的內部結構,可以看到@conditionalonclass({servlet.class, server.class, loader.class, webappcontext.class})這樣的條件匹配注解,如果在jetty的jar包中可以找到上述三個類的實例,則決定使用jetty容器。

?
1
2
3
4
5
6
7
8
9
10
11
12
@configuration
@conditionalonclass({servlet.class, server.class, loader.class, webappcontext.class})
@conditionalonmissingbean( value = {embeddedservletcontainerfactory.class}, search = searchstrategy.current)
public static class embeddedjetty {
 public embeddedjetty() {
 }
 @bean
 public jettyembeddedservletcontainerfactory jettyembeddedservletcontainerfactory() {
  // 返回容器工廠實例,用于構造容器實例
  return new jettyembeddedservletcontainerfactory();
 }
}

同樣得,可以看到對tomcat也存在類似的判斷和使用代碼:

?
1
2
3
4
5
6
7
8
9
10
11
@configuration
@conditionalonclass({servlet.class, tomcat.class})
@conditionalonmissingbean( value = {embeddedservletcontainerfactory.class}, search = searchstrategy.current)
public static class embeddedtomcat {
 public embeddedtomcat() {
 }
 @bean
 public tomcatembeddedservletcontainerfactory tomcatembeddedservletcontainerfactory() {
  return new tomcatembeddedservletcontainerfactory();
 }
}

總結

以上所述是小編給大家介紹的選擇spring boot項目的內嵌容器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.jianshu.com/p/70233f90859c

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 小鸟酱视频在线观看 | 国内外精品免费视频 | 精品欧美 | 天堂精品高清1区2区3区 | 歪歪私人影院成人毛片 | 鬼吹灯天星术在线高清观看 | 99久久精品免费看国产情侣 | 国产精品视频在这里有精品 | 日本三级香港三级久久99 | 99视频精品国在线视频艾草 | 翁息肉小说老扒 | 午夜成私人影院在线观看 | 黄动漫车车好快的车车a | 亚洲精品第三页 | 精品一区二区三区波多野结衣 | 99久久精品自在自看国产 | 人与禽交3d动漫羞羞动漫 | 天堂精品高清1区2区3区 | 美女bbxx美女bbb | 成人 在线欧美亚洲 | 深夜网站在线观看 | 美女扒开胸罩露出胸大乳 | 青青热久久综合网伊人 | 98在线视频噜噜噜国产 | poren18日本老师hd | 国产草逼视频 | 韩国三级在线高速影院 | sihu国产午夜精品一区二区三区 | 91精品国产高清久久久久久 | 欧亚专线欧洲m码可遇不可求 | 无人区1免费完整观看 | 精品一区二区三区视频日产 | 2022日韩理论片在线观看 | 亚洲第一网站免费视频 | 精品国产一区二区 | 午夜福利电影网站鲁片大全 | 欧美日韩精品一区二区三区视频 | 欧美一级片免费看 | 夫妇野外交换激情 | 亚洲视频一区二区在线观看 | 久久这里只精品国产99re66 |