《面試寶典》2019年springboot面試必問題

前言

社長,一個愛學習,愛分享的程序猿,始終相信,付出總會有回報的。知識改變命運,學習成就未來。愛拼纔會贏!
程序猿學社的GitHub,已整理成相關技術專刊,歡迎Star:
https://github.com/ITfqyd/cxyxs

2019年已經成爲了過去,藉此機會想好好總結一下2019年項目研發的成效,看看在項目從無到有,都經歷了那些變化?取得了哪些成果?踩過哪些坑?一個人、一個研發團隊要想有質的飛躍,必須善於反思過去,總結經驗,只有這樣才能精準的定位問題並制定有效的改進措施。

1、什麼是 Spring Boot?

“Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。


用過springboot的社友應該都知道,搭建一個完整的spring項目,我們得配置依賴,配置spring的xml。其中一大難點,就是jar包衝突的問題。


Spring Boot讓我們更關注於業務邏輯的開發,大大的提高了我們的效率,是從事微服務開發必點的一個技能點。

2、Spring Boot有哪些優點?

避免大量的Maven導入和各種版本衝突
減少開發學習時間,支持各種技術的start。
提高內置的tomcat,可以直接運行。
Spring Boot使監控變得簡單(actuator)
基於不同環境,使用對應的配置(dev,pro等等),再也不用像以前一樣手動改配置咯。
注意:springboot對於我們開發是方便了不少,但是,建議,我們先學習spring後,再來使用springboot,因爲springboot是從spring上衍生出來的,不然,在springboot的學習過程中,會有點懵,不知道爲什麼要這樣配置,底層是怎麼樣實現的。

3、Spring Boot 的配置文件有哪幾種格式?它們有什麼區別?

.properties 和 .yml,它們的區別主要是書寫格式不同,社長強烈推薦使用yml格式,有層次感,方面閱讀。

4、什麼是 Spring Boot Stater ?

Springboot方便的一個地方,就是內部封裝了很多的Stater
列舉一些常用的Stater
應用日誌:spring-boot-starter-logging
快速web應用開發:spring-boot-starter-web
面向切面編程:spring-boot-starter-aop
集成rabbitMQ:spring-boot-starter-amqp
注意:集成過程中,springboot會默認一些配置,需要我們開發瞭解集成技術點的一些配置。

5.創建一個 Spring Boot Project 的最簡單的方法是什麼?

通過idea創建一個Spring Initializr項目,注意eclipse需要下載STS插件。

6.springboot項目可以通過哪幾種方式運行?

1)打成jar包,通過java -jar  jar包名運行
2) 打成war包,放入容器中運行,官網建議生產環境使用打成war包方式。

7.springboot如何實現熱部署?

springboot默認是不默認啓動熱部署的,需要我們自己加入熱部署的依賴,springboot有兩個classloader存在,分工明確,一個輔助管理jar包,另外一個restartClassloader用來封裝用戶的代碼,修改代碼是會重啓restartClassloader,當文件改動後,部分重啓,所以重啓效率相對於傳統的ssm框架重啓速度更快

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
</dependency>

8. Spring Boot 如何定義多套不同環境配置?

1)編寫多個application.yml文件,以生產和本地爲例子
application.yml
application-pro.yml
application-dev.yml
2)切換application.yml 裏面對應的值
spring:
  profiles:
    active: dev
建議,通過分佈式配置中心來進行管理,可以使用攜程的apollo

9. Spring Boot 最核心的 3 個註解詳解?

Springboot的一個入口就是main方法,我們可以觀察到springboot項目的主類上必有一個@SpringBootApplication註解。實際上他等價於@Configuration,@EnableAutoConfiguration 和 @ComponentScan這三個註解的組合。


@Configuation:

加載Spring方法
配置spring並啓動spring容器

@EnableAutoConfiguration 註解:

點擊這個註解,查看他的源碼,發現他通過@import實現了@Import(AutoConfigurationImportSelector.class)

@ComponentScan:

描述表的掃描範圍

後記

程序猿學社的GitHub,歡迎Star:
https://github.com/ITfqyd/cxyxs
覺得有用,可以點贊,關注,評論,留言四連發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章