“SpringBoot配置檔案”相關面試題
面試要套路,也要技巧。別被背題目的兄弟們給忽悠了。
【你來發揮】你比較喜歡什麼技術,哪一種最熟?
一般自信的面試官都喜歡問這個問題,這次面試的小夥比較年輕,咱也裝回B,不然都對不起自己。
答: 我比較喜歡Spring,比較有趣。
目的: 希望應聘者能夠有廣度且有深度。如果最感興趣的是Spring本身,而不是其上的解決方案,那頂多會承擔被分解後的編碼工作。
巧了,咱也熟。
【工作經驗】SpringBoot相比較SpringMVC,有什麼優缺點?
答: 有很多方面。覺得最好的就是不用寫那麼多配置檔案了,直接寫個註解,通過自動配置,就完成了初始化。
目的: 說什麼無所謂,主要看有沒有總結能力。判斷是否用過早期的Spring版本,經歷過版本更新更能瞭解軟體開發之痛,接受新知識會考慮相容和迭代。
【實現原理】我想要SpringBoot自動讀取我的自定義配置,該做哪些事情?
答: 寫一個相應的starter
目的: 判斷是否瞭解和寫過Spring Boot Starter,主要是META-INF目錄下的spring.factories檔案和AutoConfiguration。瞭解AOP更佳。
【煙幕彈】配置檔案是yml格式,這種格式你喜歡麼?
答: 比較喜歡properties格式,感覺yml格式的配置檔案縮排比較難處理。比如當我從網上拷貝一些別人長長的配置檔案,可能要花較多時間整理檔案格式。
目的 此問題沒有具體的意圖,主要是過渡用。
【動手能力】這麼喜歡properties方式,能夠寫一段程式碼,將yml翻譯成properties麼? 要是回答相反則反著來。
目的 通過簡單的虛擬碼,判斷應聘者的動手能力和編碼風格。是喜歡問題抽象化還是喜歡立刻動手去寫。我希望回答能夠有條理,而且能夠考慮各種異常情況,比如把自己判斷不了的配置交給使用者處理;比如空格和的處理。
【提示】提示一下,你用什麼資料結構進行儲存?
目的 假如應聘者在一段時間內不能有任何產出,會給出簡單的提示。找準了儲存結構,你就基本完成了工作,此問題還判斷了應聘者的培養成本和價值。
【基礎演算法】哦,是樹結構,遍歷方式是怎樣的?前序,後序,中序?
目的 判斷是否有基礎的演算法知識。做工程先不要求會什麼動態規劃或者貪心演算法,但起碼的資料結構是要了解的。
【基礎知識】你用到了Map?Java中如何做可排序的Map?
目的 是否對java的基礎集合類熟悉,期望回答TreeMap,如果回答上來,可能會追問它是什麼資料結構(紅黑樹)。
【知識廣度】你還接觸過哪些配置方式?比較喜歡那種?
目的 瞭解應聘者的知識廣度,說不出來也無所謂,瞭解的多會加分。比如ini、cfg、json、toml、序列化等。
【專案規模】我想要把我的配置放在雲端,比如資料庫密碼等,改怎麼做?
目的 是否瞭解SpringBoot的元件SpringConfig,或者瞭解一些其他的開源元件如攜程的apollo等。
【知識廣度】我想要配置檔案改動的時候,所有機器自動更新,該怎麼辦?
目的 瞭解是否知曉常用的同步方式。有兩種:一種是定時去輪詢更新;一種是使用zk或者etcd這種主動通知的元件。
【實現細節】Spring是如何進行配置檔案重新整理的?
目的 這個可真是沒寫過就真不知道了,主要是org.springframework.cloud.context.scope.refresh.RefreshScope
這個類
【架構能力】現在我想要將配置檔案分發到一部分機器,也就是帶有版本的灰度概念,你該如何處理?
目的 如果能夠從閘道器、微服務約定,後臺操作原型方面去多方位描述一下,更佳。