用ps做網站網頁百度排名服務
相信學做Java開發(fā)的同學從開始工作時就被問及什么是spring的依賴注入,以及切面編程。今天我們簡單再聊聊這兩個概念。
依賴注入
這里的依賴不是動詞依賴依靠的意思,而是名詞。可以把這兩個詞翻過來讀下”注入依賴“,所謂的依賴可以理解成一個類有很多屬性,這些屬性就是這里的依賴,依賴注入就是spring可以自動注入你寫的這個類定義的這些屬性。
有一種你只管想象或者定義,而spring為你構造實現(xiàn)的味道。當你的工程有幾百上千個類時依賴的自動注入將極大簡化代碼邏輯使程序員們專注于業(yè)務。
spring的aop能力
aop不是spring獨創(chuàng),這只是一個編程思想或者方法,指的是在某段程序前后執(zhí)行另一段代碼邏輯,以滿足對具有相同特性的代碼邏輯做通用的處理。比如你想對所有在xxx包下的方法執(zhí)行前先校驗用戶權限,那么切面編程是最好的選擇,它可以為了省了在每個方法前都調用一遍權限校驗的邏輯。
看似簡單的兩個能力spring卻對其玩出了花,比如依賴注入就有多種方式實現(xiàn),如可以設置按名稱注入,按類型注入或者使用構造器自動注入等,又或者通過注解指定來注入,注解又有不同。而在注入前的準備也是一件復雜的工作,得先對需要注入的依賴進行標記,而標記手段可以有很多種,比如通過xml文件來配置,或者通過注解來指定。標記后得讀取所標記的文件還得判斷被標記的文件是否符號自動注入條件,比如對于抽象類無法注入等判斷。
所以一個優(yōu)秀的開源框架往往寫的十分復雜,細節(jié)考慮的方方面面代碼量也會變得很大,而對于那些想閱讀其源碼了解其原理的人來說一開始可能并不是一件容易的事。而我作為一個10年老程序員斗膽說一些自己的淺見。入行IT也是機緣巧合,記得剛入行時最怕的就是ssh,分別是spring,structs,hibernate其中spring是最讓我頭大的真的是一點不懂,無數(shù)的xml配置仿佛是天書一般讓人從心底開始生畏,正由于害怕導致似乎大腦開始抵觸似的更難接受相關知識。而到如今到信手拈來,其中的經驗個人覺得簡單總結就是看多了用多了熟悉了。這里的看多了我的做法是看優(yōu)秀的前人寫的博客,不論是使用用法還是源碼講解都看還要自己嘗試去閱讀spring源碼;用多了自然是工作中無時無刻都離不開spring,因為相信國內的互聯(lián)網公司除了一些特別的大廠可能會自研框架代替spring大都是使用spring吧。
或許大家從中發(fā)現(xiàn)我這個經驗似乎沒有什么技巧并談不上什么好的學習方法,只是簡單的日積月累式的階梯增長罷了,換任何人干個十年八年的一樣可以,或者比我做得更好。我覺得你這么想沒毛病,我是認同的,因為對于spring框架來說并沒有多少復雜的算法需要多聰明的大腦,只要你肯花時間多看多學還是容易學的通的。
如果非要談一些學習經驗的話,我也想談談我的看法不一定對僅供參考。
第1步:找到適合自己的學習資料。很多大腦建議新人學習一個新東西時都建議去看官網,官網確實是非常完整的學習資料,但對很多新手來說不太友好。比如一些人英語很不好而框架官網都是英文學習起來很費勁。有些官網寫的可能也并不是很時候新手入門。
我的建議是先找一些博客文章做一些簡單入門了解再做打算
第2步:確定學習方向。對于你想學的東西確定你想學習的深度和方向,比如你希望即會用spring又可以了解ioc的原理
第3步:盡量弄清楚你要學的框架的總體架構和特性,看博客配合官網對其有個總體上的認識。
第4步:制定目標嚴格執(zhí)行。如前兩周學會其使用方法;接下來三周看完ioc相關源碼。
第5步:輸出博客或者筆記。
第6步:公司技術分享會開始裝逼。