一文帶你輕松應(yīng)對Springboot面試小結(jié)

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)有父項目。
4. SpringBoot 的使用方式
maven 中父項目導(dǎo)入 Springboot 的啟動器。然后編寫一個主程序打上 SpringBootApplication 注解。通過 run 方法就可以啟動。
5. SpringBoot 自動配置原理
首先可以看到啟動類上面有一個 SpringBootApplication 注解,點進去之后,又 EnableAutoConfiguration 注解。然后再進去,發(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 配置文件注入
注入實體類中,實體類可以使用 @ConfigurationProperties(prefix = "person") 注解。
7. @Value 和 @ConfigurationProperties 比較
8.@PropertySource
加載指定的配置文件。如下,如果不聲明的話,將從主配置文件加載。
9.@ImportResource
導(dǎo)入 Spring 的配置文件,讓配置文件里面的內(nèi)容生效;這種方式比如一個類沒有使用 @Componet 注解注冊進容器,則使用自動裝配 autowired 找不到。引入文件后,即可找到。
Spring Boot 里面沒有 Spring 的配置文件,我們自己編寫的配置文件,也不能自動識別;
想讓 Spring 的配置文件生效,加載進來; @**ImportResource** 標(biāo)注在一個配置類上
10. springboot 的 profile 加載
在配置文件的時候,我們可以建立多個。用 - 進行結(jié)尾。通過主配置文件,配置 profiles 的 active 就可以指定加載文件。
在同一個文件中, yml 文件支持文檔塊的寫法,為 --- 。
11. SpringBoot 激活指定 profile 的幾種方式
第一種:直接在配置文件中通過 active 指定
第二種:通過 java -jar 的參數(shù)指定
第三種:通過虛擬機參數(shù)
12. SpringBoot 項目內(nèi)部配置文件加載順序
順序如下;
優(yōu)先級由高到底,高優(yōu)先級的配置會覆蓋低優(yōu)先級的配置;
SpringBoot 會從這四個位置全部加載主配置文件; ** 互補配置 ** ;
我們還可以通過 spring.config.location 來改變默認(rèn)的配置文件位置
項目打包好以后,我們可以使用命令行參數(shù)的形式,啟動項目的時候來指定配置文件的新位置;指定配置文件和默認(rèn)加載的這些配置文件共同起作用形成互補配置;
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 如何擴展 SpringMVC 的配置
通過建立自己的類繼承 WebMvcConfigurerAdapter ,在類上面打上注解 @Configuration 。然后重寫里面的方法即可。容器中的所有的 WebMvcConfigurer 會一起起作用。
如果我們不想使用 mvc 的自動配置,全部使用自己的??梢栽谂渲妙惿显黾幼⒔?@EnableWebMvc 。這個注解可以導(dǎo)入一個 webmvcconfigurationsupport 的類。然后 mvc 的自動配置類上的注解有這么一句話,有一個條件注解,當(dāng)沒有上面那個類的時候,才生效。
16. SpringBoot 如何注冊 filter , servlet , listener
編寫好一個 servlet 后,聲明一個類,返回 ServletRegistrationBean 。通過里面的方法將 servlet 包裝一下返回。
編寫一個 filter 。通過 FilterRegister 包裝。
編寫一個 listener ,實現(xiàn)注冊 bean 。
17. SpringBoot 切換成 undertow
先排除掉 tomcat ,然后再引入 undertow 就行了。
18. SpringBoot 的任務(wù)
異步任務(wù)在啟動類上,增加注解 @EnableAsync ,此時就開啟了。然后對于異步的方法,打上注解 @Async 。
定時任務(wù),在啟動類上,打上注解 @EnableScheduling ,需要定時的方法使用 @Scheduled 注解。這里面分為秒,分,小時,日期,月份,星期。
郵件任務(wù)
引入郵件任務(wù)啟動器。在配置文件中進行配置。通過 javamailsenderimpl 來發(fā)送??梢园l(fā)送簡單的郵件和復(fù)雜的郵件 SimpleMailMessage 和 MimeMessage 。
19. SpringBoot 熱部署
jrebal 是收費的。
一般使用 springboot-dev-tool 。通過 ctrl+f9 進行熱部署。開啟 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 。引入后再配置文件進行配置 redis 的 host 。然后通過 redistemplate 就可以進行操作了。會亂碼,默認(rèn)使用的是 jdk 的序列化 json 器。需要改成 jackson 。自己實現(xiàn)一個 RedisTmeplate 。泛型為 object , object 。再實現(xiàn) CacheManager 。就會發(fā)現(xiàn)緩存變成 json 形式了。
到此這篇關(guān)于一文帶你輕松應(yīng)對Springboot面試小結(jié)的文章就介紹到這了,更多相關(guān)Springboot面試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 這篇文章主要介紹了35道SpringBoot面試題及答案(小結(jié))的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-21
- 這篇文章主要介紹了Spring Boot 面試的一些知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-04-15