Springboot面試題


1.什么是Springboot?

用來簡化Spring應用的初始搭建以及開發過程,使用特定的方式來進行配置(properties或yml文件)

創建獨立的Spring引用程序main方法運行

入的Tomcat無需部署war文件

簡化maven配置

自動配置Spring添加對應功能的starter自動化配置

答:Springboot是Spring開源組織下的子項目,是Spring組件一站式解決方案,主要是簡化了使用Spring的難度,簡省了繁重的配置,提供了各種啟動器,開發者能快速上手。just run就能創建一個獨立的產品級別的應用。

 

 

2.為什么使用Springboot?(Springboot有哪些優點?)

:(1)能夠快速創建獨立運行的Spring項目與主流框架集成       (獨立運行)

        (2)使用嵌入式的servlet容器,應用無需打包成war包            (上手容易)

         (3)starters自動依賴與版本控制                                             (自動配置)

         (4)大量的自動配置,簡化開發,也可修改默認值                  (簡化配置)

         (5)准生產環境的運行應用監控                                              (應用監控)

          (6)與雲計算的天然集成                                                         (無代碼生成和XML配置)

          ..........

 

 

 3.Springboot的核心配置文件有哪幾個?他們的區別是什么?

 

Springboot的核心配置文件是application和bootstrap配置文件

      application配置文件:主要用於Springboot項目的自動化配置

      bootstrap配置文件有以下幾個應用場景:

            (1)使用Spring cloud config配置中心時,這時需要在bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;

            (2)一些固定的不能被覆蓋的屬性

            (3)一些加密/解密的場景

 

 

4.Springboot 的配置文件有哪幾種格式?他們有什么區別?

 .properties 和 .yml ,他們的區別主要是書寫格式不同。

(1).properties

 

(2).yml
 
另外,.yml格式不支持@propertySourse注解導入配置
 
 
5.Springboot的核心注解是哪個?它主要由哪幾個注解組成?
啟動類上面的注解是:@SpringBootApplication,他也是Springboot的核心注解,主要組成包含了一下3個注解:
      @SpringBootConfiguration:組合了@Configuration注解,實現配置文件的功能
      @EnableAutoConfiguration:打開自動配置功能,也可以關閉某個自動配置功能,如關閉數據源自動配置功能:
              @SpringBootApplication(exclude={
                        DataSourceAutoConfiguration.class})。
      @ComponentScan:Spring組件掃描
 
 
6.開啟Springboot特性有哪幾種方式?
(1)繼承Spring-boot-starter-parent項目
(2)導入Spring-boot-dependencies項目依賴
 
 
 
7.Springboot需要獨立的容器運行嗎?
可以不需要,內置了Tomcat/Jetty等容器
 
 
 
 
8.運行Springboot有哪幾種方式?
(1)打包用命令或者放到容器中運行
(2)用Maven/Gradle插件運行
(3)直接執行main方法運行
 
 
9.Springboot自動配置原理是什么?
注解@EnableAutoConfiguration,@Configuration,@ConditionalOnClass就是自動配置的核心,首先它是一個配置文件,其次根據類路徑下是否有這個類自動去配置。
 
 
10.Springboot的目錄結構是怎樣的?
 
這個目錄結構是主流及推薦的做法,而在主入口類上加上@SpringBootApplicaton注解來開啟Springboot的各項功能,如自動配置、組件掃描等。
 
 
 
11.你如何理解Springboot中的Starters?
Starters可以理解為啟動器,它包含了一系列可以集成到應用里面的依賴包,你可以一站式集成
Spring及其他技術,而不需要到處找示例代碼和依賴包。如果你想使用Spring JPA訪問數據庫,只要加入Spring-boot-starter-data-jpa啟動器依賴就能使用了。
 
Starters包含了許多項目中需要用到的依賴,他們能快速持續的運行,都是一系列得到支持的管理傳遞性依賴。
 
 
 
12.如何在Springboot啟動的時候運行一些特定的代碼?
可以實現接口ApplicationRunner或者CommandLineRunner,這兩個接口實現方式一樣,他們都只提供了一個run方法。
 
 
13.Springboot有哪幾種讀取配置的方式?
Springboot可以通過@propertySource,@Value,@Environment,@ConfigurationProperties來綁定變量。
 
 
14.Springboot支持哪些日志框架?推薦和默認的日志框架是哪個?
Springboot支持Java Util Logging,Log4j2,Lockback作為日志框架,如果你使用Starters啟動器,Springboot將使用Lockback作為默認日志框架。
 
 
15.Springboot實現熱部署有哪幾種方式?
主要有兩種方式:
       (1)Spring  Loaded
       (2)Spring-boot-devtools
 
 
16.你如何理解Springboot配置加載順序?
在Springboot里面,可以使用以下幾種方式來加載配置:
(1)properties文件
(2)YAML文件
(3)系統環境變量
(4)命令行參數
          ..............
 
 
17.Springboot如何定義多套不同環境配置?
提供多套配置文件,如:
 
運行時指定具體的配置文件。
 
 
 18.Springboot可以兼容老Spring項目嗎?如何做?
可以兼容,使用@ImportResource注解導入老Spring項目配置文件
 
 
19.保護Springboot應用有哪些方法?
(1)在生產中使用HTTPS
(2)使用Snyk檢查你的依賴關系
(3)升級到最新版本
(4)啟用CSRF保護
(5)使用內容安全策略防止XSS攻擊
       。。。。。
 
 
20.Springboot2.x有什么新特性?與1.X有什么區別?
(1)配置變更
(2)JDK版本升級
(3)第三方類庫升級
(4)響應式Spring編程支持
(5)HTTP/2支持
(6)配置屬性綁定
(7)更多改進與加強
 
 

21、如何重新加載Spring Boot上的更改,而無需重新啟動服務器? 
這可以使用DEV工具來實現。通過這種依賴關系,您可以節省任何更改,嵌入式tomcat將重新啟動。 
Spring Boot有一個開發工具(DevTools)模塊,它有助於提高開發人員的生產力。Java開發人員面臨的一個主要挑戰是將文件更改自動部署到服務器並自動重啟服務器。 
開發人員可以重新加載Spring Boot上的更改,而無需重新啟動服務器。這將消除每次手動部署更改的需要。Spring Boot在發布它的第一個版本時沒有這個功能。 
這是開發人員最需要的功能。DevTools模塊完全滿足開發人員的需求。該模塊將在生產環境中被禁用。它還提供H2數據庫控制台以更好地測試應用程序。 

org.springframework.boot 
spring-boot-devtools 
true 

 

22、springboot集成mybatis的過程 
添加mybatis的starter maven依賴 

org.mybatis.spring.boot 
mybatis-spring-boot-starter 
1.2.0 

在mybatis的接口中 添加@Mapper注解 
在application.yml配置數據源信息

 

 

文件出處:https://blog.csdn.net/yuzongtao/article/details/84295732https://blog.csdn.net/zl1zl2zl3/article/details/83715633


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM