java面試題 --- Spring②

1. SpringBoot 有哪些優點?

  • 簡單輕量,遠離繁瑣配置,開箱即用;
  • 提供了大量的 starter,不用導入大量的 maven 依賴,不用擔心版本問題。

2. SpringBoot 的核心註解是什麼?

  • @SpringBootApplication 是 SpringBoot 的核心註解,這個註解其實是一個是組合註解,它由 @ComponentScan、@Configuration 和 @EnableAutoConfiguration 三個註解構成。@ComponentScan 是用來做 Spring 組件掃描的,即被掃描到的就會被 Spring 管理;@Configuration 是用來實現配置文件的功能;@EnableAutoConfiguration 是來實現自動配置功能的。

3. 什麼是 Java config?

  • java config 就是用純 java 的方式來實現配置文件的功能。

4. 說一說 SpringBoot 自動裝配的原理。

  • SpringBoot 自動裝配的核心就是 @EnableAutoConfiguration 註解,它會掃描 META-INF/spring.factotires 文件中配置的需要進行自動裝配的類名,然後根據類名,找到這些類對應的 properties.java 類,讀取屬性進行配置,然後加入到 IOC 容器中,這就完成了自動配置。

5. SpringBoot 配置文件有哪些格式?

  • .properties 和 .yml。

6. SpringBoot 可以用 xml 配置嗎?

  • 可以,通過 @ImportResource 註解就可以導入自定義的配置,但是 Spring 不推薦 xml 配置,推薦用 java config。

7. bootstrap.properties 和 application.properties 有什麼區別?

  • bootstrap.properties 先加載,一般用於從配置中心拉取配置。

8. SpringBoot 項目如何分環境開發?

  • 不同的環境用不同的配置文件,比如開發用 dev,測試用 test,然後在 application.properties 中通過 spring.profile = dev就可以指定用哪個環境的配置文件。

9. 你在項目中是如何解決跨域問題的?

  • 通過 cors 來解決跨域問題,新建配置類實現 WebMvcConfigurer 接口,重寫其 addCorsMappings 方法。也可以新建 CorsConfig 配置類,配置 CorsFilter 對象。

10. 什麼是 SpringBoot starter?

  • 一站式配置,聚合了一組依賴的 maven 依賴,比如要創建 spring web 項目,只需要引入 spring-boot-web-starter 即可,它會自動引入所需的依賴並且處理好依賴關係。

11. 簡單介紹下 SpringCloud。

  • SpringCloud 是一個生態,囊括了一系列的技術,包括註冊中心,服務調用,服務熔斷降級,服務配置中心,服務網關,消息總線,消息驅動,服務調用鏈路追蹤等。

12. SpringCloud 服務之間是怎麼調用的?

  • 通過 open feign 調用,底層其實是 http 調用。

13. 服務網關你們用來做什麼?

  • 統一對外的 API,同時也可以保護內部的 API,所有的請求進來先到網關,在這裏做了權限控制,身份校驗,冪等校驗之後再進行流量轉發。

14. 你們的冪等校驗是怎麼做的?

  • 攔截所有非 get 請求,將請求的參數以及地址拼接成一個 key,然後去 Redis 中查詢該 key 是否有值,如果有就直接返回 Redis 中的結果,如果沒有,就將該請求轉發到對應的服務中,將操作結果放到 Redis 中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章