- 什么是SpringBoot?
SpringBoot是Spring開源阻止下的子項目匠襟,是Spring組件一站式解決方案擦俐,主要是簡化了使用Spring的難度望薄,簡省了繁重的配置,提供了各種啟動器审洞,使開發(fā)者可以快速上手莱睁。
- 為什么要使用SpringBoot?
快速開發(fā)芒澜,快速整合仰剿,配置簡單,內嵌服務容器
- SpringBoot有哪些有點?
- 容易上手痴晦,提成開發(fā)效率南吮,簡單開發(fā)。
- 開箱即用誊酌,簡省繁瑣配置
- 提供了一系列大型項目的非業(yè)務性功能部凑。例如:內嵌服務器露乏、運行數據監(jiān)控、運行狀況檢查涂邀、和外部優(yōu)化配置等
總結:編碼簡單施无、配置簡單、部署簡單必孤、監(jiān)控變簡單
- SpringBoot核心注解是哪幾個?
啟動類上面的@SpringBootApplication猾骡,它也是SpringBoot的核心注解,包含了以下3個注解
- @SpringBootConfiguration:組合了@Configuration注解敷搪,實現配置文件的功能
- @EnableAutoConfiguration:打開自動配置的功能
- @ComponentScan:掃描組件
- SpringBoot Starter的工作原理
在SpringBoot啟動時由@SpringBootApplication注解會自動去maven去讀取每個starter中的spring.factories文件兴想,該文件里面配置了所有需要被創(chuàng)建的bean,并且進行自動裝配把bean注入Spring content中去
- SpringBoot2.x 與SpringBoot1.x有什么區(qū)別?
- 配置變更
- JDK版本升級
- 第三方類庫升級
- 響應式Spring編程支持
- Http/2支持
- 配置屬性綁定
- SprigBoot支持什么前端模板?
thymeleaf赡勘、freemarker嫂便、jsp
- 開啟SpringBoot特性有哪幾種方式?
- 集成Spring-boot-starter-parent項目
- 導入Spring-boot-dependencies項目依賴
- SpringBoot實現熱部署有哪幾種方式?
- Spring loaded
- Spring-boot-devtools
- SpringBoot事物怎么使用?
- 在SpringBoot啟動類上面使用@EnableTransactionManagement 開啟事物之后 在service方法上面使用@Transactional
- Aysnc 異步調用方法
在SpringBoot中使用異步調用是很簡單,只需要在方法上使用@Async注解就可以實現方法的以部調用闸与。需要開啟@EnableAsync開啟@Async才會生效毙替。
- 如何在SpringBoot 啟動的時候運行一些特定的代碼?
可以實現接口ApplicationRunnher或者CommandLineRunner,然后在run方法執(zhí)行特定操作践樱,該類會在SpringBoot啟動完成運行
- SpringBoot 有哪幾種讀取配置的方式?
SpringBoot可以通過@PropertySource厂画,@Value,@Enviornment拷邢,@ConfigurationProperties注解來綁定變量袱院。
- SpringBoot的自動配置原理是什么?
- 主要是SpringBoot的啟動類上的核心注解@SpringBootApplication注解配置類瞭稼,有了這個主配置類啟動的時候就會為SpringBoot開啟一個@EnableAutoConfiguration注解自動配置功能
有了這個@EnableAutoConfiguration 的話就會- 從配置文件META_INF/Spring.factories加載可能用到的自動配置類
- 去重忽洛,并將execulde和excludeName屬性攜帶的類排除
- 過濾,將滿足條件的自動配置類返回
- SpringBoot可以使用哪幾種方式來加載配置?
- properties
- YAML文件
- 系統環(huán)境變量
- 命令行參數
還有更多方式
- 什么是YAML?
YAML是一種可讀的序列化語言环肘,通常用于配置文件欲虚,與屬性文件相比,YAML更加結構化悔雹,更少混淆复哆。
- YAML配置的優(yōu)勢有哪些?
- 配置有序
- 簡單明了
- 相比properties配置文件荠商,YAML還有一個缺點寂恬,不支持@PropertySource注解導入自定義的YAML配置
- SpringBoot是否可以使用XML配置?
是可以的续誉,但是SpringBoot 推薦采用Java配置而且而非XML配置莱没。
- Springboot 核心配置文件是什么?bootstrap.properties 和application.properties的區(qū)別
- bootstrap由父ApplicationContext加載的酷鸦,比application優(yōu)先加載饰躲,配置的應用程序上下文的引導階段生效牙咏。一般來說在SpringCloud配置的時候會使用到這個文件
- application由ApplicationContext加載,用于SpringBoot項目的自動化配置
- SpringBoot多數據源拆分思路?
先在properties 配置文件中配置兩個數據源嘹裂,創(chuàng)建分包mapper妄壶,使用@ConfigurationProperties讀取propeties中的配置,使用@MapperScan注冊到對應的mapper中去
- SpringBoot多數據源事物如何管理寄狼?
- 第一種方式是在service層的@TransactionManager中使用transactionManager指定datasourceConfig配置的事物
- 第二種是使用ta-atomikos實現分布式事物管理
- 保護SpringBoot應用的方法有哪些丁寄?
- 生產種使用Https
- 使用snyk檢查依賴關系
- 升級到最新版本
- 啟動CRSF 保護
- 使用安全策略方式XSS攻擊
- 如何實現SpringBoot應用程序的安全性?
使用spring-boot-starter-security依賴項,并且添加安全配置泊愧。配置類擴展WebSecurityConfigurerAdapter 并且覆蓋
- 比較Spring security和Shiro的優(yōu)缺點伊磺?
- security是一個重量級框架,shiro是個輕量級框架
- security 配置繁瑣删咱,shiro簡單
- security功能強大 shiro功能簡單
- SpringBoot種如何解決跨域問題?
跨域可以在前端通過JSONP來解決屑埋,但是只能解決GET請求。SpringBoot可以通過實現WebMvcConfigurer接口然后重寫addCorsMappings方法解決跨域問題痰滋。
- SpringBoot中的監(jiān)視器是什么摘能?
SpringBoot actuator是spring啟動框架中的重要功能之一,SpringBoot監(jiān)視器可幫助訪問生產環(huán)境的應用當前狀態(tài)敲街。
- 如何監(jiān)聽SpringBoot微服務团搞?
SpringBoot提供監(jiān)視器端點,以及監(jiān)控各個微服務的度量多艇,這些端點對于獲取是否正常運行很有幫助莺丑。我們將使用SpringBoot Actuator之上,它提供了一個webui 使我們可監(jiān)視多個應用程序的度量
- SpringBoot項目如何性能優(yōu)化墩蔓?
項目比較大就采用@Compoment指定掃描包范圍
在項目啟動時設置JVM初始化內存和最大內存相同
- SpringBoot 微服務中如何實現session共享?
使用Spring session+redis實現session共享
- SpringBoot中的starter到底是什么梢莽?
這份starter是基于spring來實現的,它提供一個自動化配置裝配類奸披。在這個配置中通過條件來決定一個配置是否生效昏名。然后提供了一系列的默認配置,也可以開發(fā)者自定義配置