1. 程式人生 > >談談個人對Spring的理解

談談個人對Spring的理解

現在開始將會把我面試中遇到的問題做一個總結每一條問題作為一篇簡短的部落格敘述.

1.你對spring的理解是什麼?

答:

spring:
1)開源框架
2)IoC(控制反轉),將類的建立和依賴關係寫在配置檔案裡,由配置檔案注入,實現了鬆耦合
3)AOP 將安全,事務等於程式邏輯相對獨立的功能抽取出來,利用spring的配置檔案將這些功能插進去,實現了按照方面程式設計,提高了複用性

如果按著概念來回答的話:

spring是一個輕型容器(light-weight container),其核心是Bean工廠(Bean Factory),用以構造我們所需要的M(Model)。在此基礎之上,Spring提供了AOP(Aspect-Oriented Programming, 面向層面的程式設計)的實現,用它來提供非管理環境下申明方式的事務、安全等服務;對Bean工廠的擴充套件ApplicationContext更加方便我們實現J2EE的應用;DAO/ORM的實現方便我們進行資料庫的開發;Web MVC和Spring Web提供了Java Web應用的框架或與其他流行的Web框架進行整合。

面試的人會問到:struts跟spring的區別?

structs:和ww2等一樣,都是典型的mvc結構框架,至於mvc是什麼,地球人都知道,如果你不知道就google吧:),structs偏重於表現層,它自己起一個控制器的作用即controller,它可以良好的把表現層與業務層分離開來。 
spring:說白了就是一個大雜燴,提供了目前各種流行框架的整合,經典的有對hibernate的整合,此外,如mail,axis...各種都有。另外,它比較經典的就是IOC與AOP的功能,樓上已經有人說了,如果你不知道,去google。此外,它還提供了Spring MVC,它基於webflow,至於用法,去查它的文件。 
structs的actionform是公認的敗筆,我用得痛苦得不得了。 
另外,你說的重複提交,那是瀏覽器的問題,和structs無關。看你如何指揮瀏覽器了,如果你用redirect,就沒有重複提交的問題,因為瀏覽器已經重定向了。但是你用forward,那在你重新整理的時候就是重複提交。 
Spring比較偏重於業務層,在頁面上一般是不顯示出來的。當然,如果你用Spring的MVC例外。