AOP與IOC的概念(即spring的核心)
IOC:Spring是開源框架,使用框架可以使我們減少工作量,提高工作效率並且它是分層結構,即相對應的層處理對應的業務邏輯,減少代碼的耦合度。而spring的核心是IOC控制反轉和AOP面向切面編程。IOC控制反轉主要強調的是程序之間的關系是由容器控制的,容器控制對象,控制了對外部資源的獲取。而反轉即為,在傳統的編程中都是由我們創建對象獲取依賴對象,而在IOC中是容器幫我們創建對象並注入依賴對象,正是容器幫我們查找和注入對象,對象是被獲取,所以叫反轉。
AOP:面向切面編程,主要是管理系統層的業務,比如日志,權限,事物等。AOP是將封裝好的對象剖開,找出其中對多個對象產生影響的公共行為,並將其封裝為一個可重用的模塊,這個模塊被命名為切面(aspect),切面將那些與業務邏輯無關,卻被業務模塊共同調用的邏輯提取並封裝起來,減少了系統中的重復代碼,降低了模塊間的耦合度,同時提高了系統的可維護性。
核心組件:bean,context,core,單例注入是通過單例beanFactory進行創建,生命周期是在創建的時候通過接口實現開啟,循環注入是通過后置處理器,aop其實就是通過反射進行動態代理,pointcut,advice等。