今天跟你們分享下SpringBoot 常見高頻面試題的知識。java
下面是小編關於SpringBoot的知識點總結了一個思惟導圖,但願對你們全部幫助!程序員
經過Spring Boot,能夠輕鬆地建立獨立的,基於生產級別的Spring的應用程序,您能夠「運行」它們。大多數Spring Boot應用程序須要最少的Spring配置。面試
建立獨立的Spring應用程序spring
直接嵌入Tomcat,Jetty或Undertow(無需部署WAR文件)bootstrap
提供固化的「starter」依賴項,以簡化構建配置mybatis
儘量自動配置Spring和3rd Party庫app
提供可用於生產的功能,例如指標,運行情況檢查和外部化配置dom
徹底沒有代碼生成,也不須要XML配置spring-boot
經過Web界面使用。http://start.spring.io測試
經過Spring Tool Suite使用。
經過IntelliJ IDEA使用。
使用Spring Boot CLI使用。
@SpringBootApplication
@SpringBootConfifiguration:組合了 @Confifiguration 註解,實現配置文件的功能。
@EnableAutoConfifiguration:打開自動配置的功能,也能夠關閉某個自動配置的選項。
@SpringBootApplication(exclude = { DataSourceAutoConfifiguration.class })
@ComponentScan:Spring組件掃描
YAML(/ˈjæməl/,尾音相似camel駱駝)是一個可讀性高,用來表達數據序列化的格式。YAML參考了其餘多種語言,包括:C語言、Python、Perl。更具備結構性。
1.properties
java.xiaokaxiu.name = xiaoka
2.yml
java: xiaokaxiu: name: xiaoka
1. main方法
2. 命令行 java -jar 的方式
3. mvn/gradle
不須要,內置了 Tomcat/Jetty。
1. 命令行參數
2. java:comp/env裏的JNDI屬性
3. JVM系統屬性
4. 操做系統環境變量
5. 隨機生成的帶random.*前綴的屬性(在設置其餘屬性時,能夠引用它們,好比${random.
long})
6. 應用程序之外的application.properties或者appliaction.yml文件
7. 打包在應用程序內的application.properties或者appliaction.yml文件
8. 經過@PropertySource標註的屬性源
9. 默認屬性
tips:這個列表按照優先級排序,也就是說,任何在高優先級屬性源裏設置的屬性都會覆蓋低優先級的相
同屬性。
1. 外置,在相對於應用程序運行目錄的/confifig子目錄裏。
2. 外置,在應用程序運行的目錄裏。
3. 內置,在confifig包內。
4. 內置,在Classpath根目錄。
這個列表按照優先級排序,優先級高的會覆蓋優先級低的。
固然咱們能夠本身指定文件的位置來加載配置文件。
java -jar xiaoka.jar ———spring.config.location=/home/application.yml
@EnableAutoConfifiguration (開啓自動配置) 該註解引入了AutoConfifigurationImportSelector,該類中
的方法會掃描全部存在META-INF/spring.factories的jar包。
spring-boot-devtools
Spring Loaded
Jrebel
模版熱部署
bootstrap.yml 優先於application.yml
yml中:
server : port : 8888
properties:
server.port = 8888
命令1:
java -jar xiaoka.jar ——— server.port=8888
命令2:
java - Dserver.port=8888 -jar xiaoka.jar
1. 繼承spring-boot-starter-parent項目
2. 導入spring-boot-dependencies項目依賴
在啓動類加:
@ImportResource(locations = {"classpath:spring.xml"})
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
/beans 端點
/shutdown
該端點默認是關閉的,若是開啓,須要以下設置。
endpoints: shutdown: enabled: true
或者properties格式也是能夠的。
/info
@PatchMapping
@PostMapping
@GetMapping
@PutMapping
@DeleteMapping
能夠理解成對依賴的一種合成,starter會把一個或一套功能相關依賴都包含進來,避免了本身去依賴費
事,還有各類包的衝突問題。大大的提高了開發效率。
而且相關配置會有一個默認值,若是咱們本身去配置,就會覆蓋默認值。
mybatis-spring-boot-starter
通常來講咱們從開發到生產,通過開發(dev)、測試(test)、上線(prod)。不一樣的時刻咱們會用不一樣的配置。Spring Profifiles 容許用戶根據配置文件(dev,test,prod 等)來註冊 bean。它們可讓咱們本身選擇何時用什麼配置。
能夠是 application-{profifile}.properties/yml ,但默認是啓動主配置文件application.properties,通常
來講咱們的不一樣環境配置以下。
`application.properties`:主配置文件
`application-dev.properties`:開發環境配置文件
`application-test.properties`:測試環境配置文件
`application.prop-properties`:生產環境配置文件
好比咱們激活開發環境。
yml:
spring: profiles: active: dev
properties:
spring.profiles.active=dev
命令行:
java -jar xiaoka-v1.0.jar ———spring.profiles.active=dev
@SpringBootTest
@ControllerAdvice
@ExceptionHandler
1. SpringBoot 2基於Spring5和JDK8,Spring 1x用的是低版本。
2. 配置變動,參數名等。
3. SpringBoot2相關的插件最低版本不少都比原來高
4. 2.x配置中的中文能夠直接讀取,不用轉碼
5. Actuator的變化
6. CacheManager 的變化
@PropertySource
@Value
@Environment
@ConfifigurationProperties
關注公衆號:程序員白楠楠,領取2020最新Java面試題手冊(200多頁PDF文檔)。