<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Java 最常見的 208 道面試題:第十一模塊答案

          共 5463字,需瀏覽 11分鐘

           ·

          2023-08-16 14:45

          (給 碼農(nóng)的成長(zhǎng)之路 加星標(biāo),提升自身技能


          十一、Spring Boot / Spring Cloud


          104. 什么是 spring boot?


          在Spring框架這個(gè)大家族中,產(chǎn)生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心內(nèi)容在于控制反轉(zhuǎn)(IOC)和依賴注入(DI),所謂控制反轉(zhuǎn)并非是一種技術(shù),而是一種思想,在操作方面是指在spring配置文件中創(chuàng)建<bean>,依賴注入即為由spring容器為應(yīng)用程序的某個(gè)對(duì)象提供資源,比如 引用對(duì)象、常量數(shù)據(jù)等。

             

          SpringBoot是一個(gè)框架,一種全新的編程規(guī)范,他的產(chǎn)生簡(jiǎn)化了框架的使用,所謂簡(jiǎn)化是指簡(jiǎn)化了Spring眾多框架中所需的大量且繁瑣的配置文件,所以 SpringBoot是一個(gè)服務(wù)于框架的框架,服務(wù)范圍是簡(jiǎn)化配置文件。


          105. 為什么要用 spring boot?


          • Spring Boot使編碼變簡(jiǎn)單

          • Spring Boot使配置變簡(jiǎn)單

          • Spring Boot使部署變簡(jiǎn)單

          • Spring Boot使監(jiān)控變簡(jiǎn)單

          • Spring的不足


          106. spring boot 核心配置文件是什么?


          Spring Boot提供了兩種常用的配置文件:


          • properties文件

          • yml文件


          107. spring boot 配置文件有哪幾種類型?它們有什么區(qū)別?


          Spring Boot提供了兩種常用的配置文件,分別是properties文件和yml文件。相對(duì)于properties文件而言,yml文件更年輕,也有很多的坑??芍^成也蕭何敗蕭何,yml通過(guò)空格來(lái)確定層級(jí)關(guān)系,使配置文件結(jié)構(gòu)跟清晰,但也會(huì)因?yàn)槲⒉蛔愕赖目崭穸茐牧藢蛹?jí)關(guān)系。


          108. spring boot 有哪些方式可以實(shí)現(xiàn)熱部署?


          SpringBoot熱部署實(shí)現(xiàn)有兩種方式:


          ①. 使用spring loaded


          在項(xiàng)目中添加如下代碼:


                
                  
                    <build>
                  
                
                
                          <plugins>
                
                
                              <plugin>
                
                
                                  <!-- springBoot編譯插件-->
                
                
                                  <groupId>org.springframework.boot</groupId>
                
                
                                  <artifactId>spring-boot-maven-plugin</artifactId>
                
                
                                  <dependencies>
                
                
                                      <!-- spring熱部署 -->
                
                
                                      <!-- 該依賴在此處下載不下來(lái),可以放置在build標(biāo)簽外部下載完成后再粘貼進(jìn)plugin中 -->
                
                
                                      <dependency>
                
                
                                          <groupId>org.springframework</groupId>
                
                
                                          <artifactId>springloaded</artifactId>
                
                
                                          <version>1.2.6.RELEASE</version>
                
                
                                      </dependency>
                
                
                                  </dependencies>
                
                
                              </plugin>
                
                
                          </plugins>
                
                
                      </build>
                
              


          添加完畢后需要使用mvn指令運(yùn)行:

              

          首先找到IDEA中的Edit configurations ,然后進(jìn)行如下操作:(點(diǎn)擊左上角的"+",然后選擇maven將出現(xiàn)右側(cè)面板,在紅色劃線部位輸入如圖所示指令,你可以為該指令命名(此處命名為MvnSpringBootRun))

              caf651b9638ab44bd789da0dc2457fe0.webp

           

          點(diǎn)擊保存將會(huì)在IDEA項(xiàng)目運(yùn)行部位出現(xiàn),點(diǎn)擊綠色箭頭運(yùn)行即可


          445be7b4e5cbf5abe091f6b0aa278512.webp


          ②. 使用spring-boot-devtools


          在項(xiàng)目的pom文件中添加依賴:


                
                   <!--熱部署jar-->
                
                
                   <dependency>
                
                
                       <groupId>org.springframework.boot</groupId>
                
                
                       <artifactId>spring-boot-devtools</artifactId>
                
                
                   </dependency>
                
              


          然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷鍵) 選擇"Registry" 然后勾選 compiler.automake.allow.when.app.running


          109. jpa 和 hibernate 有什么區(qū)別?


          • JPA Java Persistence API,是Java EE 5的標(biāo)準(zhǔn)ORM接口,也是ejb3規(guī)范的一部分。

          • Hibernate,當(dāng)今很流行的ORM框架,是JPA的一個(gè)實(shí)現(xiàn),但是其功能是JPA的超集。

          • JPA和Hibernate之間的關(guān)系,可以簡(jiǎn)單的理解為JPA是標(biāo)準(zhǔn)接口,Hibernate是實(shí)現(xiàn)。那么Hibernate是如何實(shí)現(xiàn)與JPA的這種關(guān)系的呢。Hibernate主要是通過(guò)三個(gè)組件來(lái)實(shí)現(xiàn)的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

          • hibernate-annotation是Hibernate支持annotation方式配置的基礎(chǔ),它包括了標(biāo)準(zhǔn)的JPA annotation以及Hibernate自身特殊功能的annotation。

          • hibernate-core是Hibernate的核心實(shí)現(xiàn),提供了Hibernate所有的核心功能。

          • hibernate-entitymanager實(shí)現(xiàn)了標(biāo)準(zhǔn)的JPA,可以把它看成hibernate-core和JPA之間的適配器,它并不直接提供ORM的功能,而是對(duì)hibernate-core進(jìn)行封裝,使得Hibernate符合JPA的規(guī)范。


          110. 什么是 spring cloud?


          從字面理解,Spring Cloud 就是致力于分布式系統(tǒng)、云服務(wù)的框架。


          Spring Cloud 是整個(gè) Spring 家族中新的成員,是最近云服務(wù)火爆的必然產(chǎn)物。


          Spring Cloud 為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具,例如:


          • 配置管理

          • 服務(wù)注冊(cè)與發(fā)現(xiàn)

          • 斷路器

          • 智能路由

          • 服務(wù)間調(diào)用

          • 負(fù)載均衡

          • 微代理

          • 控制總線

          • 一次性令牌

          • 全局鎖

          • 領(lǐng)導(dǎo)選舉

          • 分布式會(huì)話

          • 集群狀態(tài)

          • 分布式消息

          • ……


          使用 Spring Cloud 開發(fā)人員可以開箱即用的實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序。這些服務(wù)可以任何環(huán)境下運(yùn)行,包括分布式環(huán)境,也包括開發(fā)人員自己的筆記本電腦以及各種托管平臺(tái)。


          111. spring cloud 斷路器的作用是什么?


          在Spring Cloud中使用了Hystrix 來(lái)實(shí)現(xiàn)斷路器的功能,斷路器可以防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作,即很可能失敗,允許它繼續(xù)而不等待故障恢復(fù)或者浪費(fèi) CPU 周期,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測(cè)故障是否已經(jīng)解決,如果問題似乎已經(jīng)得到糾正,應(yīng)用程序可以嘗試調(diào)用操作。


          斷路器增加了穩(wěn)定性和靈活性,以一個(gè)系統(tǒng),提供穩(wěn)定性,而系統(tǒng)從故障中恢復(fù),并盡量減少此故障的對(duì)性能的影響。它可以幫助快速地拒絕對(duì)一個(gè)操作,即很可能失敗,而不是等待操作超時(shí)(或者不返回)的請(qǐng)求,以保持系統(tǒng)的響應(yīng)時(shí)間。如果斷路器提高每次改變狀態(tài)的時(shí)間的事件,該信息可以被用來(lái)監(jiān)測(cè)由斷路器保護(hù)系統(tǒng)的部件的健康狀況,或以提醒管理員當(dāng)斷路器跳閘,以在打開狀態(tài)。


          112. spring cloud 的核心組件有哪些?


          ①. 服務(wù)發(fā)現(xiàn)——Netflix Eureka


          一個(gè)RESTful服務(wù),用來(lái)定位運(yùn)行在AWS地區(qū)(Region)中的中間層服務(wù)。由兩個(gè)組件組成:Eureka服務(wù)器和Eureka客戶端。Eureka服務(wù)器用作服務(wù)注冊(cè)服務(wù)器。Eureka客戶端是一個(gè)java客戶端,用來(lái)簡(jiǎn)化與服務(wù)器的交互、作為輪詢負(fù)載均衡器,并提供服務(wù)的故障切換支持。Netflix在其生產(chǎn)環(huán)境中使用的是另外的客戶端,它提供基于流量、資源利用率以及出錯(cuò)狀態(tài)的加權(quán)負(fù)載均衡。


          ②. 客服端負(fù)載均衡——Netflix Ribbon


          Ribbon,主要提供客戶側(cè)的軟件負(fù)載均衡算法。Ribbon客戶端組件提供一系列完善的配置選項(xiàng),比如連接超時(shí)、重試、重試算法等。Ribbon內(nèi)置可插拔、可定制的負(fù)載均衡組件。


          ③. 斷路器——Netflix Hystrix


          斷路器可以防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作,即很可能失敗,允許它繼續(xù)而不等待故障恢復(fù)或者浪費(fèi) CPU 周期,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測(cè)故障是否已經(jīng)解決。如果問題似乎已經(jīng)得到糾正,應(yīng)用程序可以嘗試調(diào)用操作。


          ④. 服務(wù)網(wǎng)關(guān)——Netflix Zuul


          類似nginx,反向代理的功能,不過(guò)netflix自己增加了一些配合其他組件的特性。


          ⑤. 分布式配置——Spring Cloud Config


          這個(gè)還是靜態(tài)的,得配合Spring Cloud Bus實(shí)現(xiàn)動(dòng)態(tài)的配置更新。



          
           

          System.out.println("點(diǎn)個(gè)在看吧!");
          console.log("點(diǎn)個(gè)看吧!");
          print("點(diǎn)個(gè)看吧!");
          printf("點(diǎn)個(gè)看吧!\n");
          cout << "點(diǎn)個(gè)看吧!" << endl;
          Console.WriteLine("點(diǎn)個(gè)看吧!");
          Response.Write("點(diǎn)個(gè)看吧!");
          alert("點(diǎn)個(gè)看吧!")
          echo "點(diǎn)個(gè)看吧!"

              

          892de4159bcb6946e8df1c205237c4e1.webp       你點(diǎn)的每個(gè)“在看”,我都認(rèn)真當(dāng)成了喜歡      





          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女极度色诱图片www视频 | 成人淫色免费视频 | www.精品在线播放国产区 | 影音先锋AV激情理论在线观看 | 欧美靠逼视频 |