框架就是一些類和接口的集合,經過這些類和接口協調來完成一系列的程序實現。面試
JAVA框架能夠分爲三層:表示層,業務層和物理層。框架又叫作開發中的半成品,它不能提供整個WEB應用程序的全部東西,可是有了框架,咱們就能夠集中精力進行業務邏輯的開發而不用去關心它的技術實現以及一些輔助的業務邏輯。spring
你們熟知的Structs和Spring就是表示層和業務層框架的強力表明。通常的公司面試時看你是否涉及過J2EE的開發,總會考察你有沒有這方面框架的認知力。好的框架應當是考慮:穩定、靈活(在某個開發領域,或某個行業來講,不要搞成絕對通用,目前很難) 、容易維護(一致的表現,裏面的凡是相贊成義的操做都有一致的面孔)、新手容易上手、利於迅速開發N多項目(項目之間知識能夠不斷積累,通用功能的與項目專用功能分離)。框架
對於固然首先要理解框架是什麼?字面含義就是條條框框組成的一個架子,這個架子怎麼理解呢?ide
1)框架能夠這樣來理解,如建一座房子,先把房子的梁、柱子建起來,這就是一個房子的框架。至於房子內部怎樣,哪裏是房間,哪裏是客廳,就看設計者。軟件也是同樣,把一個軟件的大概的梁、柱子建起來,就是軟件的框架。一個軟件半成品,幫你作了一些基礎工做,你就能夠在這個基礎之上,來定製適合你本身的應用。流行的框架很是靈活,以適應不一樣的需求。打個比方,若是你輸入到屏幕上用System.out.println()若是println方法都要本身去實現,那麼是否是很恐怖。因此框架在解決大規模的問題上,這些基礎工做是必需的。設計
2)框架就是一顆松樹,你只要在上邊掛點裝飾物和幾片小雪花,裝幾個小電燈,它就能夠變成炫目喜慶的聖誕樹。orm
3)框架象相框同樣,作好相框,只要往裏邊放相片,隨意你怎麼放相片,大的,小的,均可以。 相框是不變的,相片裏隨你換,若是相框過小放不進相片就是框架沒作好啊。xml
因此這裏能夠稍微擴展一下,一個框架的複雜程序以及加載東西的多少,是十分關鍵的。如今就有個別人批評spring框架過大,侷限過多。 blog
若是一個項目就是一個學校的話,struts就是開學的時候負責報名接待的部門,來了個學生(請求),他們會根據你的姓名(請求路徑)查找你是那個系,那個班的,把你帶到相應的地方(action),而後就是那個對應你的組織(action)來處理你了。他的花名冊就是配置文件(sturts-config。xml),上面能夠配置你的姓名(請求路徑),是否驗證你身上帶沒帶學費(viladate),把你讓誰(request)帶到你的組織裏去,放你行李的小車(formbean)的編號等等。xml裏的struts配置就是保安要驗證的信息,看你是否是有這個學校的錄取通知書。等你大二大三了,你成了接待人員(action),你只要知道你去組織那些學生(配置struts-config。xml),怎麼處理他們(調用那個service方法),着就是struts了。spring 的IOC就是本應該有學校作的招聘工做,交給的獵頭公司(控制反轉)而後把招聘到的人員交給學校使用。 接口
模式更側重於框架內部,也就是房間內部各傢俱之間如何擺放的組合思考方式。開發