今天我參加面試我是java的新手,spring boot。面試官問了關于垃圾收集器的問題。我說垃圾收集器會釋放未使用的資源。然后他問了IOC容器,我說它控制物件的創建并將注入到依賴的bean中。然后他問為什么我們需要使用 IOC 容器,我說它不會在每次使用現有物件時都創建一個新物件。他再次問好吧,創建一個新物件有什么問題,因為垃圾收集器會釋放記憶體,那么我們為什么要使用 IOC ..?我被困在這里。請幫助更好地理解這一點
uj5u.com熱心網友回復:
簡而言之,您并不總是想要新物件,因為它們可能非常昂貴/創建速度很慢。
IOC 容器允許您的組件放棄對如何創建和管理依賴項的控制。
例如:如果我以傳統方式創建 DAO 層/類,我的 DAO 層需要知道如何創建資料源。這可以管理,但想象更多的類現在需要知道如何創建資料源。
使用 IOC,你的 DAO 層會說:嘿!我需要一個資料源實體。現在,由 IOC 容器找到并為您提供它。您仍然需要為 IOC 提供一種為您創建此實體的方法。但是在這種情況下,你們所有的DAO 層都可以保持凝聚力,只做他們應該做的事情——執行事務。這也將允許您創建負責以特定方式處理資料庫連接的專家類/組件。
在 spring 中,默認情況下所有 bean 都是單例的。這意味著在 Spring 背景關系中只會有一個實體。您不需要多次創建它們。
IOC 的目的不是簡化 GC 的運作。它是放開你的組件和依賴項的創建方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/446006.html
