1.ioc 和 DI 需要解決最根本的問題是什麼?
答:最需要解決的問題是 bean 的循環依賴的問題
2.BeanFactory 和 applicationContext 的本質區別?
答:加載的時機不同,BeanFactory 是懶加載,applicationContext 是非懶加載的,可以指定爲懶加載,是對BeanFatory 的擴充
3.什麼是控制反轉,什麼是依賴注入?
答:首先,依賴倒置,控制反轉,是把控制權交個Spring容器管理,降低了耦合性。ioc 思想最核心的地方在於,資源不由使用資源的雙方管理,而由不使用資源的第三方管理,這樣可以帶來很多好處,第一,資源集中管理,實現資源的可配置,和易管理,第二,降低了使用資源雙方的依賴程度,也就是我們說的耦合度。依賴注入,就是通過Spring容器進行注入。
4.配置Bean的作用域對象
答:
在不指定@Scope 的情況下,所有bean都是單實例餓漢加載(容器啓動實力就創建好了)
Bean的懶加載@Lazy (主要針對單實例的Bean 容器啓動的時候,不創建對象,在對一次使用的時候纔會創建對象)
5.@Conditional 進行條件判斷等。
6.往IOC 添加組建的方式有哪幾種?
答:
@bean
@CompentScan + @Controller + @Service + @ comment + @ Repository (自己寫時使用)
@Import (導入第三方組建時可使用,管理第三方bean的)
ImportBeanDefinitionRegister 實現接口
FactoryBean (通過實現接口來實現註冊組件)
7.Bean的生命週期?
由IOC來控制。
針對單實例bean的話,容器啓動的時候,bean的對象就創建了,而且容器銷燬的時候,也會調用bean的銷燬方法
針對多實例的時候,bean是不會被創建的而是在獲取bean的時候被創建,而且bean的銷燬不受IOC容器的管理。
8.PropertSource 的使用?
答:給屬性賦值
9.@Autowired 根據什麼裝配?
答:根據名稱裝配
10.Profile 使用場景?
答:配置本地生產使用環境。