IOC:控制反轉(又名:依賴注入)
正常情況下(無IOC):
你製作一件傢俱
你需要錘子,自己去找錘子
你需要扳手,自己去找扳手
你需要鋸子,自己去找鋸子
傢俱完成了
IOC情況下:
製作前,你把錘子,扳手,鋸子給管家(所以稱爲:依賴注入)
你製作一件傢俱
你需要錘子,管家遞給你錘子(所以稱爲:控制反轉)
你需要扳手,管家遞給你扳手
你需要鋸子,管家遞給你鋸子
傢俱完成了
你管家就是Spring,錘子,扳手,鋸子就是各類方法,你把各類方法依賴注入給Spring,他幫你管理,你自己不用控制了,就是控制反轉。你是不是就輕鬆了許多?
AOP:面向切面編程
你經營一家一個人的公司
你需要自己做產品,設計,開發,招人,理財
你經營一家AOP公司
你把開發交給了產品經理(把各種方法代碼封裝成切面類)
你把員工交給了人事經理
你把財務交給了財務經理
有一天,你開一道新的產品線(開一個新的事件)
你覺得需要運營,你把市場經理招進來了(添加新的切面類)
你覺得人事經理不行,你把人事經理換了(修改以前的切面類)
AOP就在於讓你明確關注點,爲你提供事務的管理,明確現在的事情,其他事情交給Spring去做。