面試題之SpringBoot

  1. 什么是SpringBoot?

SpringBoot是Spring開源阻止下的子項目匠襟,是Spring組件一站式解決方案擦俐,主要是簡化了使用Spring的難度望薄,簡省了繁重的配置,提供了各種啟動器审洞,使開發(fā)者可以快速上手莱睁。

  1. 為什么要使用SpringBoot?

快速開發(fā)芒澜,快速整合仰剿,配置簡單,內嵌服務容器

  1. SpringBoot有哪些有點?
  1. 容易上手痴晦,提成開發(fā)效率南吮,簡單開發(fā)。
  2. 開箱即用誊酌,簡省繁瑣配置
  3. 提供了一系列大型項目的非業(yè)務性功能部凑。例如:內嵌服務器露乏、運行數據監(jiān)控、運行狀況檢查涂邀、和外部優(yōu)化配置等
    總結:編碼簡單施无、配置簡單、部署簡單必孤、監(jiān)控變簡單
  1. SpringBoot核心注解是哪幾個?

啟動類上面的@SpringBootApplication猾骡,它也是SpringBoot的核心注解,包含了以下3個注解

  1. @SpringBootConfiguration:組合了@Configuration注解敷搪,實現配置文件的功能
  2. @EnableAutoConfiguration:打開自動配置的功能
  3. @ComponentScan:掃描組件
  1. SpringBoot Starter的工作原理

在SpringBoot啟動時由@SpringBootApplication注解會自動去maven去讀取每個starter中的spring.factories文件兴想,該文件里面配置了所有需要被創(chuàng)建的bean,并且進行自動裝配把bean注入Spring content中去

  1. SpringBoot2.x 與SpringBoot1.x有什么區(qū)別?
  1. 配置變更
  2. JDK版本升級
  3. 第三方類庫升級
  4. 響應式Spring編程支持
  5. Http/2支持
  6. 配置屬性綁定
  1. SprigBoot支持什么前端模板?

thymeleaf赡勘、freemarker嫂便、jsp

  1. 開啟SpringBoot特性有哪幾種方式?
  1. 集成Spring-boot-starter-parent項目
  2. 導入Spring-boot-dependencies項目依賴
  1. SpringBoot實現熱部署有哪幾種方式?
  1. Spring loaded
  2. Spring-boot-devtools
  1. SpringBoot事物怎么使用?
  1. 在SpringBoot啟動類上面使用@EnableTransactionManagement 開啟事物之后 在service方法上面使用@Transactional
  1. Aysnc 異步調用方法

在SpringBoot中使用異步調用是很簡單,只需要在方法上使用@Async注解就可以實現方法的以部調用闸与。需要開啟@EnableAsync開啟@Async才會生效毙替。

  1. 如何在SpringBoot 啟動的時候運行一些特定的代碼?

可以實現接口ApplicationRunnher或者CommandLineRunner,然后在run方法執(zhí)行特定操作践樱,該類會在SpringBoot啟動完成運行

  1. SpringBoot 有哪幾種讀取配置的方式?

SpringBoot可以通過@PropertySource厂画,@Value,@Enviornment拷邢,@ConfigurationProperties注解來綁定變量袱院。

  1. SpringBoot的自動配置原理是什么?
  1. 主要是SpringBoot的啟動類上的核心注解@SpringBootApplication注解配置類瞭稼,有了這個主配置類啟動的時候就會為SpringBoot開啟一個@EnableAutoConfiguration注解自動配置功能
    有了這個@EnableAutoConfiguration 的話就會
  2. 從配置文件META_INF/Spring.factories加載可能用到的自動配置類
  3. 去重忽洛,并將execulde和excludeName屬性攜帶的類排除
  4. 過濾,將滿足條件的自動配置類返回
  1. SpringBoot可以使用哪幾種方式來加載配置?
  1. properties
  2. YAML文件
  3. 系統環(huán)境變量
  4. 命令行參數
    還有更多方式
  1. 什么是YAML?

YAML是一種可讀的序列化語言环肘,通常用于配置文件欲虚,與屬性文件相比,YAML更加結構化悔雹,更少混淆复哆。

  1. YAML配置的優(yōu)勢有哪些?
  1. 配置有序
  2. 簡單明了
  3. 相比properties配置文件荠商,YAML還有一個缺點寂恬,不支持@PropertySource注解導入自定義的YAML配置
  1. SpringBoot是否可以使用XML配置?

是可以的续誉,但是SpringBoot 推薦采用Java配置而且而非XML配置莱没。

  1. Springboot 核心配置文件是什么?bootstrap.properties 和application.properties的區(qū)別
  1. bootstrap由父ApplicationContext加載的酷鸦,比application優(yōu)先加載饰躲,配置的應用程序上下文的引導階段生效牙咏。一般來說在SpringCloud配置的時候會使用到這個文件
  2. application由ApplicationContext加載,用于SpringBoot項目的自動化配置
  1. SpringBoot多數據源拆分思路?

先在properties 配置文件中配置兩個數據源嘹裂,創(chuàng)建分包mapper妄壶,使用@ConfigurationProperties讀取propeties中的配置,使用@MapperScan注冊到對應的mapper中去

  1. SpringBoot多數據源事物如何管理寄狼?
  1. 第一種方式是在service層的@TransactionManager中使用transactionManager指定datasourceConfig配置的事物
  2. 第二種是使用ta-atomikos實現分布式事物管理
  1. 保護SpringBoot應用的方法有哪些丁寄?
  1. 生產種使用Https
  2. 使用snyk檢查依賴關系
  3. 升級到最新版本
  4. 啟動CRSF 保護
  5. 使用安全策略方式XSS攻擊
  1. 如何實現SpringBoot應用程序的安全性?

使用spring-boot-starter-security依賴項,并且添加安全配置泊愧。配置類擴展WebSecurityConfigurerAdapter 并且覆蓋

  1. 比較Spring security和Shiro的優(yōu)缺點伊磺?
  1. security是一個重量級框架,shiro是個輕量級框架
  2. security 配置繁瑣删咱,shiro簡單
  3. security功能強大 shiro功能簡單
  1. SpringBoot種如何解決跨域問題?

跨域可以在前端通過JSONP來解決屑埋,但是只能解決GET請求。SpringBoot可以通過實現WebMvcConfigurer接口然后重寫addCorsMappings方法解決跨域問題痰滋。

  1. SpringBoot中的監(jiān)視器是什么摘能?

SpringBoot actuator是spring啟動框架中的重要功能之一,SpringBoot監(jiān)視器可幫助訪問生產環(huán)境的應用當前狀態(tài)敲街。

  1. 如何監(jiān)聽SpringBoot微服務团搞?

SpringBoot提供監(jiān)視器端點,以及監(jiān)控各個微服務的度量多艇,這些端點對于獲取是否正常運行很有幫助莺丑。我們將使用SpringBoot Actuator之上,它提供了一個webui 使我們可監(jiān)視多個應用程序的度量

  1. SpringBoot項目如何性能優(yōu)化墩蔓?

項目比較大就采用@Compoment指定掃描包范圍
在項目啟動時設置JVM初始化內存和最大內存相同

  1. SpringBoot 微服務中如何實現session共享?

使用Spring session+redis實現session共享

  1. SpringBoot中的starter到底是什么梢莽?

這份starter是基于spring來實現的,它提供一個自動化配置裝配類奸披。在這個配置中通過條件來決定一個配置是否生效昏名。然后提供了一系列的默認配置,也可以開發(fā)者自定義配置

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末阵面,一起剝皮案震驚了整個濱河市轻局,隨后出現的幾起案子,更是在濱河造成了極大的恐慌样刷,老刑警劉巖仑扑,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異置鼻,居然都是意外死亡镇饮,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門箕母,熙熙樓的掌柜王于貴愁眉苦臉地迎上來储藐,“玉大人俱济,你說我怎么就攤上這事「撇” “怎么了蛛碌?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辖源。 經常有香客問我蔚携,道長,這世上最難降的妖魔是什么克饶? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任浮梢,我火速辦了婚禮,結果婚禮上彤路,老公的妹妹穿的比我還像新娘秕硝。我一直安慰自己,他們只是感情好洲尊,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布远豺。 她就那樣靜靜地躺著,像睡著了一般坞嘀。 火紅的嫁衣襯著肌膚如雪躯护。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天丽涩,我揣著相機與錄音棺滞,去河邊找鬼。 笑死矢渊,一個胖子當著我的面吹牛继准,可吹牛的內容都是我干的。 我是一名探鬼主播矮男,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼移必,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毡鉴?” 一聲冷哼從身側響起崔泵,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猪瞬,沒想到半個月后憎瘸,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡陈瘦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年幌甘,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡含潘,死狀恐怖,靈堂內的尸體忽然破棺而出线婚,到底是詐尸還是另有隱情遏弱,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布塞弊,位于F島的核電站漱逸,受9級特大地震影響,放射性物質發(fā)生泄漏游沿。R本人自食惡果不足惜饰抒,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诀黍。 院中可真熱鬧袋坑,春花似錦、人聲如沸眯勾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吃环。三九已至也颤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郁轻,已是汗流浹背翅娶。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留好唯,地道東北人竭沫。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像骑篙,于是被迫代替她去往敵國和親输吏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355