spring中的ioc(控制反轉),控制反轉,控制和反轉,在傳統物件導向程式設計中,如果要在乙個類中呼叫另外乙個類中的方法屬性等,就需要這個類new乙個另外那個類的物件,以達到控制的目的。而在ioc容器中,不需要這樣做,因為其將控制權交了出去,交給了ioc容器,由ioc容器來實現控制。其中的反轉,其實可以理解為交控制權交出去了,不再由自己去控制另外乙個物件的建立,這就是反轉。而ioc還可以理解為「依賴注入」,即di,這個層面上理解的話,就是指由ioc容器在執行期間,動態的將某種依賴關係注入到物件中,即乙個物件需要呼叫另外乙個物件的方法、屬性等的時候,另外乙個物件就是此物件的依賴,注入的就是另外乙個物件,而注入方式是通過spring的ioc注入的。
spring中的aop,即面向切面程式設計。我們在開發乙個應用的時候,肯定會有很多的功能,而在有些功能之前,我們可能需要做一些判斷、攔截之類的事。比如我們做乙個企業oa系統,肯定需要在使用者進入乙個介面之前,判斷他是否有這個許可權,再或者判斷使用者進入乙個介面之前有沒有登入。此時,這次需要判斷、攔截的地方,我們可以理解為切面,實際的話,切面肯定包含了日誌檔案、事物管理等方面。
一般來說,我們在用spring開發程式的時候,執行流程大概如下:一般需要寫乙個父類,父類是用來做關於spring配置檔案相關的事,然後執行的時候,先使用super繼承父類裡的方法,去尋得spring的相關配置,可以用super.getbean去獲取指定的bean配置。然後就是根據配置去進行相關操作,這個過程中,就會涉及到依賴注入。
ioc容器不是隨便什麼專案都能引入使用的,跟傳統專案相比,ioc其實多了一道工序,因此如果要求程式的執行效率的話,就不要考慮引入ioc。
本人才開始學spring,以上僅僅為個人的理解,作為參考使用。
Java多執行緒中Spring的Bean注入失敗
問題說明 原因分析 web容器在啟動應用時,spring容器是無法感知多執行緒的那些bean的,所以多執行緒的bean類無法獲取spring容器的上下文,並不能通過 autowired注入需要的bean 解決方案 執行緒中獲取bean public class servicefactory retu...
Java中的異常學習
異常是程式執行期發生的不正常的事件,分為兩大類 錯誤 error jvm系統內部錯誤或資源耗盡等嚴重情況 屬於jvm需要承擔的責任,這一類異常事件無法恢復或不可能捕獲,將導致應用程式中斷。一般就是報stackoverflowerror 異常 exception 其它因程式設計錯誤或偶然的外在因素導致...
Spring學習 Spring中定時器實現
在一些工作需要使用到定時器,spring很好的整合了定時器的功能!在spring 中使用quartz,本文介紹spring3.0以後自主開發的定時任務工具,spring task,可以將它比作乙個輕量級的quartz,而且使用起來很簡單,除spring相關的包外不需要額外的包,下面介紹兩種方式實現s...