1. 什么是 spring boot?
在Spring框架這個大家族中,產生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心內容在于控制反轉(IOC)和依賴注入(DI),所謂控制反轉并非是一種技術,而是一種思想,在操作方面是指在spring組態檔中創建,依賴注入即為由spring容器為應用程式的某個物件提供資源,比如 參考物件、常量資料等,
SpringBoot是一個框架,一種全新的編程規范,他的產生簡化了框架的使用,所謂簡化是指簡化了Spring眾多框架中所需的大量且繁瑣的組態檔,所以 SpringBoot是一個服務于框架的框架,服務范圍是簡化組態檔,
2. 為什么要用 spring boot?
Spring Boot使編碼變簡單
Spring Boot使配置變簡單
Spring Boot使部署變簡單
Spring Boot使監控變簡單
106. spring boot 核心組態檔是什么?
Spring Boot提供了兩種常用的組態檔:
properties檔案
yml檔案
3. spring boot 組態檔有哪幾種型別?它們有什么區別?
Spring Boot提供了兩種常用的組態檔,分別是properties檔案和yml檔案,相對于properties檔案而言,yml檔案更年輕,也有很多的坑,可謂成也蕭何敗蕭何,yml通過空格來確定層級關系,使組態檔結構跟清晰,但也會因為微不足道的空格而破壞了層級關系,
4. spring boot 有哪些方式可以實作熱部署?
SpringBoot熱部署實作有兩種方式:
①. 使用spring loaded
在專案中添加如下代碼:
<build>
<plugins>
<plugin>
<!-- springBoot編譯插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring熱部署 -->
<!-- 該依賴在此處下載不下來,可以放置在build標簽外部下載完成后再粘貼進plugin中 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
添加完畢后需要使用mvn指令運行:
首先找到IDEA中的Edit configurations ,然后進行如下操作:(點擊左上角的"+",然后選擇maven將出現右側面板,在紅色劃線部位輸入如圖所示指令,你可以為該指令命名(此處命名為MvnSpringBootRun))

點擊保存將會在IDEA專案運行部位出現,點擊綠色箭頭運行即可

②. 使用spring-boot-devtools
在專案的pom檔案中添加依賴:
<!--熱部署jar-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
- 1
- 2
- 3
- 4
- 5
然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷鍵) 選擇"Registry" 然后勾選 compiler.automake.allow.when.app.running
- jpa 和 hibernate 有什么區別?
JPA Java Persistence API,是Java EE 5的標準ORM介面,也是ejb3規范的一部分,
Hibernate,當今很流行的ORM框架,是JPA的一個實作,但是其功能是JPA的超集,
JPA和Hibernate之間的關系,可以簡單的理解為JPA是標準介面,Hibernate是實作,那么Hibernate是如何實作與JPA的這種關系的呢,Hibernate主要是通過三個組件來實作的,及hibernate-annotation、hibernate-entitymanager和hibernate-core,
ibernate-annotation是Hibernate支持annotation方式配置的基礎,它包括了標準的JPA annotation以及Hibernate自身特殊功能的annotation,
hibernate-core是Hibernate的核心實作,提供了Hibernate所有的核心功能,
hibernate-entitymanager實作了標準的JPA,可以把它看成hibernate-core和JPA之間的配接器,它并不直接提供ORM的功能,而是對hibernate-core進行封裝,使得Hibernate符合JPA的規范,
5. 什么是 spring cloud?
從字面理解,Spring Cloud 就是致力于分布式系統、云服務的框架,
Spring Cloud 是整個 Spring 家族中新的成員,是最近云服務火爆的必然產物,
Spring Cloud 為開發人員提供了快速構建分布式系統中一些常見模式的工具,例如:

使用 Spring Cloud 開發人員可以開箱即用的實作這些模式的服務和應用程式,這些服務可以任何環境下運行,包括分布式環境,也包括開發人員自己的筆記本電腦以及各種托管平臺,
6. spring cloud 斷路器的作用是什么?
在Spring Cloud中使用了Hystrix 來實作斷路器的功能,斷路器可以防止一個應用程式多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 周期,而它確定該故障是持久的,斷路器模式也使應用程式能夠檢測故障是否已經解決,如果問題似乎已經得到糾正,應用程式可以嘗試呼叫操作,
斷路器增加了穩定性和靈活性,以一個系統,提供穩定性,而系統從故障中恢復,并盡量減少此故障的對性能的影響,它可以幫助快速地拒絕對一個操作,即很可能失敗,而不是等待操作超時(或者不回傳)的請求,以保持系統的回應時間,如果斷路器提高每次改變狀態的時間的事件,該資訊可以被用來監測由斷路器保護系統的部件的健康狀況,或以提醒管理員當斷路器跳閘,以在打開狀態,
7. spring cloud 的核心組件有哪些?
①. 服務發現——Netflix Eureka
一個RESTful服務,用來定位運行在AWS地區(Region)中的中間層服務,由兩個組件組成:Eureka服務器和Eureka客戶端,Eureka服務器用作服務注冊服務器,Eureka客戶端是一個java客戶端,用來簡化與服務器的互動、作為輪詢負載均衡器,并提供服務的故障切換支持,Netflix在其生產環境中使用的是另外的客戶端,它提供基于流量、資源利用率以及出錯狀態的加權負載均衡,
②. 客服端負載均衡——Netflix Ribbon
Ribbon,主要提供客戶側的軟體負載均衡演算法,Ribbon客戶端組件提供一系列完善的配置選項,比如連接超時、重試、重試演算法等,Ribbon內置可插拔、可定制的負載均衡組件,
③. 斷路器——Netflix Hystrix
斷路器可以防止一個應用程式多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 周期,而它確定該故障是持久的,斷路器模式也使應用程式能夠檢測故障是否已經解決,如果問題似乎已經得到糾正,應用程式可以嘗試呼叫操作,
④. 服務網關——Netflix Zuul
類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他組件的特性,
⑤. 分布式配置——Spring Cloud Config
這個還是靜態的,得配合Spring Cloud Bus實作動態的配置更新,
需要更多Java面試題,以及視頻教程的可以【點擊這里,暗號博客園!!】獲取,這份面試題的包含的模塊分為19個模塊,分別是:Java基礎、容器、多執行緒、反射、物件拷貝、JavaWeb例外、網路、設計模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251944.html
標籤:Java
