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