京東二面上來就問我springboot因惭?還好我早有準(zhǔn)備

1. SpringBoot 簡介

SpringBoot 是簡化 Spring 應(yīng)用開發(fā)的一個框架屈嗤。他整合了 Spring 的技術(shù)棧潘拨,提供各種標(biāo)準(zhǔn)化的默認(rèn)配置。使得我們可以快速開發(fā) Spring 項目饶号,免掉 xml 配置的麻煩铁追。降低 Spring 項目的成本。

2. SpringBoot 的優(yōu)缺點

使編碼配置部署都變得很簡單茫船。缺點可能就是自動注入的 bean 琅束,不是特別清楚,有可能會沖突算谈。

3. SpringBoot 如何固定版本

一種是 parenet 的時候直接固定涩禀。

一種是通過 dependcy 來固定,因為可能當(dāng)前項目已經(jīng)有父項目濒生。

image

4. SpringBoot 的使用方式

maven 中父項目導(dǎo)入 Springboot 的啟動器埋泵。然后編寫一個主程序打上 SpringBootApplication 注解。通過 run 方法就可以啟動罪治。

5. SpringBoot 自動配置原理

首先可以看到啟動類上面有一個 SpringBootApplication 注解丽声,點進(jìn)去之后,又 EnableAutoConfiguration 注解觉义。然后再進(jìn)去雁社,發(fā)現(xiàn)有個 @Import 注解,其導(dǎo)入的是 EnableAutoConfigurationImportSelector 類晒骇。再看這個類霉撵,他是集成了一個抽象的 AutoConfigutationimportSelector 。再往上就是接口 ImportSelector 洪囤。然后如果實現(xiàn)了接口的 selectImport 接口就會將其中的返回的數(shù)組全部加載到 Spring 容器中徒坡。其中實現(xiàn)的最主要的地方是 getCandidateConfigurations 方法。那個方法內(nèi)部實現(xiàn)就是回去讀取 meta-inf 下的 spring.factories 瘤缩。所以主要在那里面配置的類就都會被自動加載喇完。

6. SpringBoot 配置文件注入

image

注入實體類中,實體類可以使用 @ConfigurationProperties(prefix = "person") 注解剥啤。

image

7. @Value 和 @ConfigurationProperties 比較

image

8.@PropertySource

加載指定的配置文件锦溪。如下,如果不聲明的話府怯,將從主配置文件加載刻诊。

image

9.@ImportResource

導(dǎo)入 Spring 的配置文件,讓配置文件里面的內(nèi)容生效牺丙;這種方式比如一個類沒有使用 @Componet 注解注冊進(jìn)容器则涯,則使用自動裝配 autowired 找不到。引入文件后,即可找到粟判。

Spring Boot 里面沒有 Spring 的配置文件肖揣,我們自己編寫的配置文件,也不能自動識別浮入;

想讓 Spring 的配置文件生效,加載進(jìn)來羊异; @ImportResource 標(biāo)注在一個配置類上

image

10. springboot 的 profile 加載

在配置文件的時候事秀,我們可以建立多個。用 - 進(jìn)行結(jié)尾野舶。通過主配置文件易迹,配置 profiles 的 active 就可以指定加載文件。

在同一個文件中平道, yml 文件支持文檔塊的寫法睹欲,為 --- 。

image

11. SpringBoot 激活指定 profile 的幾種方式

第一種:直接在配置文件中通過 active 指定

第二種:通過 java -jar 的參數(shù)指定

image
image

第三種:通過虛擬機(jī)參數(shù)

image

12. SpringBoot 項目內(nèi)部配置文件加載順序

順序如下一屋;

image
image

優(yōu)先級由高到底窘疮,高優(yōu)先級的配置會覆蓋低優(yōu)先級的配置;

SpringBoot 會從這四個位置全部加載主配置文件冀墨; ** 互補(bǔ)配置 ** 闸衫;

我們還可以通過 spring.config.location 來改變默認(rèn)的配置文件位置

項目打包好以后,我們可以使用命令行參數(shù)的形式诽嘉,啟動項目的時候來指定配置文件的新位置蔚出;指定配置文件和默認(rèn)加載的這些配置文件共同起作用形成互補(bǔ)配置;

image

13. SpringBoot 外部配置文件加載順序

這個挺多的虫腋,我們就幾個重要的骄酗。

高優(yōu)先級的會覆蓋低優(yōu)先級的。

命令行上的參數(shù)配置是優(yōu)先級最高的悦冀。

jar 包外的帶 profile 的配置文件趋翻。

jar 包內(nèi)的帶 profile 的配置文件。

jar 包外的不帶 profile 的配置文件雏门。

jar 包內(nèi)的不帶 profile 的配置文件嘿歌。

14. Springboot 日志關(guān)系

SpringBoot 默認(rèn)使用的 slf4j+logback 。引入 logging-starter 就可以使用茁影。能自動適配其他日志宙帝。只需要將日志里面的 commons-logging 移除。就會自動引入其他日志募闲。

使用 LoggerFactory 可以獲得 logger 步脓。通過 logger 就可以記錄日志。

日志的一些配置

logging.level.com.atguigu=trace 指定打印級別

logging.file=G:/springboot.log 指定日志生成路徑

logging.path=/spring/log 指定日志生成相對路徑

logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n 指定控制臺輸出格式

logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== 指定文件中日志輸出格式

15. SpringBoot 如何擴(kuò)展 SpringMVC 的配置

通過建立自己的類繼承 WebMvcConfigurerAdapter ,在類上面打上注解 @Configuration 靴患。然后重寫里面的方法即可仍侥。容器中的所有的 WebMvcConfigurer 會一起起作用。

image

如果我們不想使用 mvc 的自動配置鸳君,全部使用自己的农渊。可以在配置類上增加注解 @EnableWebMvc 或颊。這個注解可以導(dǎo)入一個 webmvcconfigurationsupport 的類砸紊。然后 mvc 的自動配置類上的注解有這么一句話,有一個條件注解囱挑,當(dāng)沒有上面那個類的時候醉顽,才生效。

16. SpringBoot 如何注冊 filter 平挑, servlet 游添, listener

編寫好一個 servlet 后,聲明一個類通熄,返回 ServletRegistrationBean 唆涝。通過里面的方法將 servlet 包裝一下返回。

image
image

編寫一個 filter 棠隐。通過 FilterRegister 包裝石抡。

image
image

編寫一個 listener ,實現(xiàn)注冊 bean 助泽。

image
image

17. SpringBoot 切換成 undertow

先排除掉 tomcat 啰扛,然后再引入 undertow 就行了。

image

18. SpringBoot 的任務(wù)

異步任務(wù)在啟動類上嗡贺,增加注解 @EnableAsync 隐解,此時就開啟了。然后對于異步的方法诫睬,打上注解 @Async 煞茫。

定時任務(wù),在啟動類上摄凡,打上注解 @EnableScheduling 续徽,需要定時的方法使用 @Scheduled 注解。這里面分為秒亲澡,分钦扭,小時,日期床绪,月份客情,星期其弊。

image

郵件任務(wù)

引入郵件任務(wù)啟動器。在配置文件中進(jìn)行配置膀斋。通過 javamailsenderimpl 來發(fā)送梭伐。可以發(fā)送簡單的郵件和復(fù)雜的郵件 SimpleMailMessage 和 MimeMessage 仰担。

19. SpringBoot 熱部署

jrebal 是收費的糊识。

一般使用 springboot-dev-tool 。通過 ctrl+f9 進(jìn)行熱部署摔蓝。開啟 idea 的自動編譯技掏。

20. SpringBoot 的監(jiān)控

引入 actuatro 的監(jiān)控器。配置文件需要配置安全關(guān)閉项鬼。management.security.enabled=false 【⒀郑可以配置 endpoint 的 shutdown 的 enable 開啟绘盟,就可以直接關(guān)閉了。

21. SpringBoot 整合 redis

引入 redis 的啟動器悯仙。data-redis 龄毡。引入后再配置文件進(jìn)行配置 redis 的 host 。然后通過 redistemplate 就可以進(jìn)行操作了锡垄。會亂碼沦零,默認(rèn)使用的是 jdk 的序列化 json 器。需要改成 jackson 货岭。自己實現(xiàn)一個 RedisTmeplate 路操。泛型為 object , object 千贯。再實現(xiàn) CacheManager 屯仗。就會發(fā)現(xiàn)緩存變成 json 形式了。

image

如果喜歡本篇文章搔谴,就給小編點個贊吧魁袜,感謝支持~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市敦第,隨后出現(xiàn)的幾起案子峰弹,更是在濱河造成了極大的恐慌,老刑警劉巖芜果,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鞠呈,死亡現(xiàn)場離奇詭異,居然都是意外死亡师幕,警方通過查閱死者的電腦和手機(jī)粟按,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門诬滩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灭将,你說我怎么就攤上這事疼鸟。” “怎么了庙曙?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵空镜,是天一觀的道長。 經(jīng)常有香客問我捌朴,道長吴攒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任砂蔽,我火速辦了婚禮洼怔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘左驾。我一直安慰自己镣隶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布诡右。 她就那樣靜靜地躺著安岂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帆吻。 梳的紋絲不亂的頭發(fā)上域那,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音猜煮,去河邊找鬼次员。 笑死,一個胖子當(dāng)著我的面吹牛王带,可吹牛的內(nèi)容都是我干的翠肘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼辫秧,長吁一口氣:“原來是場噩夢啊……” “哼束倍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盟戏,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绪妹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柿究,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邮旷,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年蝇摸,在試婚紗的時候發(fā)現(xiàn)自己被綠了婶肩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片办陷。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖律歼,靈堂內(nèi)的尸體忽然破棺而出民镜,到底是詐尸還是另有隱情,我是刑警寧澤险毁,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布制圈,位于F島的核電站,受9級特大地震影響畔况,放射性物質(zhì)發(fā)生泄漏鲸鹦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一跷跪、第九天 我趴在偏房一處隱蔽的房頂上張望馋嗜。 院中可真熱鬧,春花似錦吵瞻、人聲如沸嵌戈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宽档,卻和暖如春尉姨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吗冤。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工又厉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椎瘟。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓覆致,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肺蔚。 傳聞我的和親對象是個殘疾皇子煌妈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容