最近,各大IT論壇上,“Spring” 是最熱的話題之一。與此同時以高開發效率著名“Ruby
on Rails ”也是風靡一時。
很多剛走進這方面的開發人員,不知如何選擇、權衡,哪個適於企業開發,哪個適於學習?
帶著疑問,讓我們先初步瞭解下Spring,最初接觸Spring還是因為工作的需要,我們的web項目採用的技術是:Struts + Spring + hibernate 。那麼,我們為什麼選擇這種架構,如何選擇的呢,首先Web程式的表現層開發工具現在也是百花齊放,很多都是各有各的特點,但還是沒有十全十美的,當然,在軟體開發領域,也許真的就不存在十全十美。(呵呵,個人看法!) 我們系統舊版本用的是struts,感覺不錯,因為它流行了這麼長時間,網上各種例子也很多,文檔也非常好,在加上我們已有的經驗,最終我們選擇了Struts。 之後就轉到我們的重點,Spring上了,有人說它好(很贊同),也有人說它不好(確實存在,但過於偏激)。我們系統中主要用到的是Spring的AOP方面。AOP正在成為軟體開發的下一個聖杯。使用AOP,你可以將處理aspect的代碼注入主程式,通常主程式的主要目的並不在於處理這些aspect。AOP可以防止代碼混亂。 Spring framework是很有前途的AOP技術。作為一種非侵略性的,輕型的AOP framework,你無需使用先行編譯器或其他的元標籤,便可以在Java程式中使用它。這意味著Team Dev裡只需一人要對付AOP framework,其他人還是象往常一樣編程。AOP是很多直覺難以理解的術語的根源。幸運的是,你只要理解三個概念,就可以編寫AOP模組。這三個概念是:advice,pointcut和advisor。advice是你想向別的程式內部不同的地方注入的代碼。pointcut定義了需要注入advice的位置,通常是某個特定的類的一個public方法。advisor是pointcut和advice的裝配器,是將advice注入主程式中預定義位置的代碼。在團隊開發中,只需要有人專門對付aop,其他人只需要負責商務邏輯,完全可以認為它不存在,不僅僅是代碼上的分離,更是團隊開發上得分離。對於具體如何使用Spring AOP 這裡就不多介紹了,網上例子多如牛毛,Spring 的中文官方論壇也很不錯哦。
在Spring種,提出的IOC是非常值得大家學習的,是一種很好的編程思想,也讓你真正的開始面向介面編程,在團隊開發中,這個再好不過了!
選擇Hibernate因為,他是目前非常好的開源架構,我們之所以這樣說,由我們的原因:
1、Hibernate3.0功能非常豐富,提供了HQL查詢語言,簡單易學,功能強大!
2、上手快,文檔齊全,資料豐富。
3、Spring 已經對Hibernate提供了現成的介面,設定檔,完美結合。
當然,Spring 也有它的弱點,當工程的整體架構基本搭建完成時,代碼可以在spring下很好的工作,然後,如果,我們正處於開發初期,並且業務龐大,那麼,無數的設定檔等著你處理,無數的classname,properties 的這你對應。 這也許就是我們所說的沒有十全十美。
如果,你對設定檔很頭疼,如果你有精力並且敢於嘗試,那麼,也許你可以嘗試一下
前面提到的以高開發效率著稱的"ruby on rails" , 此架構宣稱設定檔很少,可能除了像資料
庫串連,日誌等,可以宣稱零設定檔。
coolwangyu@Gmail.com
期待著你的問題,喜歡交朋友!