您好,登錄后才能下訂單哦!
這篇文章主要介紹“2021最新版Spring Boot的面試題有哪些”,在日常操作中,相信很多人在2021最新版Spring Boot的面試題有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”2021最新版Spring Boot的面試題有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
快速開發,快速整合,配置簡化、內嵌服務容器
SpringBoot是快速開發的Spring框架,SpringCloud是完整的微服務框架,SpringCloud依賴于 SpringBoot。
Spring Boot 主要有如下優點:
容易上手,提升開發效率,為 Spring 開發提供一個更快、更簡單的開發框架。
開箱即用,遠離繁瑣的配置。
提供了一系列大型項目通用的非業務性功能,例如:內嵌服務器、安全管理、運行數據監 控、運行狀況檢查和外部化配置等。
SpringBoot總結就是使編碼變簡單、配置變簡單、部署變簡單、監控變簡單等等
啟動類上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要組合包含了以下 3 個注解:
@SpringBootConfifiguration:組合了 @Confifiguration 注解,實現配置文件的功能。
@EnableAutoConfifiguration:打開自動配置的功能,也可以關閉某個自動配置的選項, 例 如: java 如關閉數據源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring組件掃描。
Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作為日志框架,如果你使用 Starters 啟動器,Spring Boot 將使用 Logback 作為默認日志框架,但是不管是那種日志框架他都支持將配置文件輸出到控制臺或者文件中。
我個人理解SpringBoot就是由各種Starter組合起來的,我們自己也可以開發Starter
在sprinBoot啟動時由@SpringBootApplication注解會自動去maven中讀取每個starter中的spring.factories文件,該文件里配置了所有需要被創建spring容器中的bean,并且進行自動配置把bean注入SpringContext中 //(SpringContext是Spring的配置文件)
配置變更
JDK 版本升級
第三方類庫升級
響應式 Spring 編程支持
HTTP/2 支持
配置屬性綁定
更多改進與加強
thymeleaf,freemarker,jsp,官方不推薦JSP會有限制
我覺得是為難人,SpringBoot在目前我覺得沒有什么缺點,非要找一個出來我覺得就是
由于不用自己做的配置,報錯時很難定位。
打包用命令或者放到容器中運行
用 Maven/ Gradle 插件運行
直接執行 main 方法運行
可以不需要,內置了 Tomcat/ Jetty 等容器。
繼承spring-boot-starter-parent項目
導入spring-boot-dependencies項目依賴
SpringBoot的事物很簡單,首先使用注解EnableTransactionManagement開啟事物之后,然后在Service方法上添加注解Transactional便可。
在SpringBoot中使用異步調用是很簡單的,只需要在方法上使用@Async注解即可實現方法的異步調用。 注意:需要在啟動類加入@EnableAsync使異步調用@Async注解生效。
可以實現接口 ApplicationRunner 或者 CommandLineRunner,這兩個接口實現方式一樣,它們都只提供了一個 run 方法
Spring Boot 可以通過 @PropertySource,@Value,@Environment, @ConfifigurationPropertie注解來綁定變量
YAML 是一種人類可讀的數據序列化語言。它通常用于配置文件。與屬性文件相比,如果我們想要在配置文件中添加復雜的屬性,YAML 文件就更加結構化,而且更少混淆。可以看出 YAML 具有分層配置數據。
Spring Boot 推薦使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通過 @ImportResource 注解可以引入一個 XML 配置。
先在properties配置文件中配置兩個數據源,創建分包mapper,使用@ConfifigurationProperties讀取properties中的配置,使用@MapperScan注冊到對應的mapper包中
第一種方式是在service層的@TransactionManager中使用transactionManager指定DataSourceConfifig中配置的事務
第二種是使用jta-atomikos實現分布式事務管理
在生產中使用HTTPS
使用Snyk檢查你的依賴關系
升級到最新版本
啟用CSRF保護
使用內容安全策略防止XSS攻擊
跨域可以在前端通過 JSONP 來解決,但是 JSONP 只可以發送 GET 請求,無法發送其他類型的請求,在 RESTful 風格的應用中,就顯得非常雞肋,因此我們推薦在后端通過 (CORS,Crossorigin resource sharing) 來解決跨域問題。這種解決方案并非 Spring Boot 特有的,在傳統的SSM 框架中,就可以通過 CORS 來解決跨域問題,只不過之前我們是在 XML 文件中配置 CORS ,現在可以通過實現WebMvcConfifigurer接口然后重寫addCorsMappings方法解決跨域問題。
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .maxAge(3600); } }
Spring 提供了一種使用 ControllerAdvice 處理異常的非常有用的方法。 我們通過實現一個ControlerAdvice 類,來處理控制器類拋出的所有異常。
如果項目比較大,類比較多,不使用@SpringBootApplication,采用@Compoment指定掃包范圍
在項目啟動時設置JVM初始內存和最大內存相同
將springboot內置服務器由tomcat設置為undertow
在 Spring Boot 中使用定時任務主要有兩種不同的方式,一個就是使用 Spring 中的 @Scheduled注解,另一-個則是使用第三方框架 Quartz。
使用 Spring 中的 @Scheduled 的方式主要通過 @Scheduled 注解來實現。
進入項目目錄在控制臺輸入mvn clean package,clean是清空已存在的項目包,package進行打包
或者點擊左邊選項欄中的Mavne,先點擊clean在點擊package
創建獨立的Spring應用程序
直接嵌入Tomcat,Jetty或Undertow(無需部署WAR文件)
提供固化的“starter”依賴項,以簡化構建配置
盡可能自動配置Spring和3rd Party庫
提供可用于生產的功能,例如指標,運行狀況檢查和外部化配置
完全沒有代碼生成,也不需要XML配置
通過Web界面使用。http://start.spring.io
通過Spring Tool Suite使用。
通過IntelliJ IDEA使用。
使用Spring Boot CLI使用。
YAML(/?j?m?l/,尾音類似camel駱駝)是一個可讀性高,用來表達數據序列化的格式。YAML參考了其他多種語言,包括:C語言、Python、Perl。更具有結構性。
main方法
命令行 java -jar 的方式
mvn/gradle
不需要,內置了 Tomcat/Jetty。
命令行參數
java:comp/env里的JNDI屬性
JVM系統屬性
操作系統環境變量
隨機生成的帶random.*前綴的屬性(在設置其他屬性時,可以引用它們,比如${random.long})
應用程序以外的application.properties或者appliaction.yml文件
打包在應用程序內的application.properties或者appliaction.yml文件
通過@PropertySource標注的屬性源
默認屬性
@EnableAutoConfifiguration (開啟自動配置) 該注解引入了AutoConfifigurationImportSelector,該類中的方法會掃描所有存在META-INF/spring.factories的jar包。
spring-boot-devtools
Spring Loaded
Jrebel
模版熱部署
bootstrap.yml 優先于application.yml
繼承spring-boot-starter-parent項目
導入spring-boot-dependencies項目依賴
在啟動類加:
@ImportResource(locations = {"classpath:spring.xml"})
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
/beans 端點
/info
@PatchMapping
@PostMapping
@GetMapping
@PutMapping
@DeleteMapping
mybatis-spring-boot-starter
@SpringBootTest
@ControllerAdvice
@ExceptionHandler
SpringBoot 2基于Spring5和JDK8,Spring 1x用的是低版本。
配置變更,參數名等。
SpringBoot2相關的插件最低版本很多都比原來高
2.x配置中的中文可以直接讀取,不用轉碼
Actuator的變化
CacheManager 的變化
@PropertySource
@Value
@Environment
@ConfifigurationProperties
到此,關于“2021最新版Spring Boot的面試題有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。