自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)Spring的筆記

開發(fā) 后端
本文介紹學(xué)習(xí)Spring的筆記,Spring的核心是個輕量級容器和Spring的特點。

繼續(xù)與大家分享J2ee部分的學(xué)習(xí)經(jīng)驗。今天的主題是目前很流行也很好的一個開源框架-Spring.

引用《Spring2.0技術(shù)手冊》上的一段話:

Spring的核心是個輕量級容器,它是實現(xiàn)IoC容器和非侵入性的框架,并提供AOP概念的實現(xiàn)方式;提供對持久層、事務(wù)的支持;提供 MVC Web框架的實現(xiàn),并對于一些常用的企業(yè)服務(wù)API提供一致的模型封裝,是一個全方位的應(yīng)用程序框架,除此之外,對于現(xiàn)存的各種框架,Spring也提供了與它們相整合的方案。

接下來筆者先談?wù)勛约旱囊恍├斫獍桑琒pring框架的發(fā)起者之前一本很著名的書名字大概是《J2ee Development without EJB》,他提倡用輕量級的組件代替重量級的EJB.筆者還沒有看完那本著作,只閱讀了部分章節(jié)。其中有一點分析覺得是很有道理的:

EJB里在服務(wù)器端有Web Container和EJB Container,從前的觀點是各層之間應(yīng)該在物理上隔離,Web Container處理視圖功能、在EJB Container中處理業(yè)務(wù)邏輯功能、然后也是EBJ Container控制數(shù)據(jù)庫持久化。這樣的層次是很清晰,但是一個很嚴(yán)重的問題是Web Container和EJB Container畢竟是兩個不同的容器,它們之間要通信就得用的是RMI機制和JNDI服務(wù),同樣都在服務(wù)端,卻物理上隔離,而且每次業(yè)務(wù)請求都要遠程調(diào)用,有沒有必要呢?看來并非隔離都是好的。

再看看輕量級和重量級的區(qū)別,筆者看過很多種說法,覺得最有道理的是輕量級代表是POJO+IoC,重量級的代表是Container+Factory.(EJB2.0是典型的重量級組件的技術(shù))我們盡量使用輕量級的Pojo很好理解,意義就在于兼容性和可適應(yīng)性,移植不需要改變原來的代碼。而Ioc與Factory比起來,Ioc的優(yōu)點是更大的靈活性,通過配置可以控制很多注入的細節(jié),而Factory模式,行為是相對比較封閉固定的,生產(chǎn)一個對象就必須接受它全部的特點,不管是否需要。其實輕量級和重量級都是相對的概念,使用資源更少、運行負(fù)載更小的自然就算輕量。

話題扯遠了,因為Spring框架帶來了太多可以探討的地方。比如它的非侵入性:指的是它提供的框架實現(xiàn)可以讓程序員編程卻感覺不到框架的存在,這樣所寫的代碼并沒有和框架綁定在一起,可以隨時抽離出來,這也是Spring設(shè)計的目標(biāo)。Spring是***可以做到真正的針對接口編程,處處都是接口,不依賴綁定任何實現(xiàn)類。同時,Spring還設(shè)計了自己的事務(wù)管理、對象管理和Model2的MVC框架,還封裝了其他J2ee的服務(wù)在里面,在實現(xiàn)上基本都在使用依賴注入和AOP的思想。由此我們大概可以看到Spring是一個什么概念上的框架,代表了很多優(yōu)秀思想,值得深入學(xué)習(xí)。筆者強調(diào),學(xué)習(xí)并不是框架,而是框架代表的思想,就像我們當(dāng)初學(xué)Struts一樣……

Spring MVC

關(guān)于IoC和AOP筆者在上篇已經(jīng)稍微解釋過了,這里先通過Spring的MVC框架來給大家探討一下Spring的特點吧。(畢竟大部分人已經(jīng)很熟悉Struts了,對比一下吧)

眾所周知MVC的核心是控制器。類似Struts中的ActionServlet,Spring里面前端控制器叫做DispatcherServlet. 里面充當(dāng)Action的組件叫做Controller,返回的視圖層對象叫做ModelAndView,提交和返回都可能要經(jīng)過過濾的組件叫做 Interceptor.

讓我們看看一個從請求到返回的流程吧:
1.前臺Jsp或Html通過點擊submit,將數(shù)據(jù)裝入了request域
2.請求被Interceptor攔截下來,執(zhí)行preHandler()方法出前置判斷
3.請求到達DispathcerServlet
4.DispathcerServlet通過Handler Mapping來決定每個reuqest應(yīng)該轉(zhuǎn)發(fā)給哪個后端控制器Controlle

【編輯推薦】

  1. Spring.NET1.1.2發(fā)布
  2. Java的Spring框架概述
  3. 對于Struts和Spring兩種MVC框架的比較
  4. Spring創(chuàng)始人:看衰Java EE
  5. 將Flex與Spring集成框架
責(zé)任編輯:佚名 來源: 中國IT實驗室
相關(guān)推薦

2009-06-22 10:41:34

Spring.AOP

2017-03-29 09:08:25

Spring筆記

2011-03-08 15:01:08

Proftpd

2021-10-24 11:11:30

Spring開源Java開發(fā)

2011-03-17 16:43:49

2009-07-14 16:08:41

WebWork學(xué)習(xí)

2009-06-19 13:37:53

Spring JDBC

2010-07-20 10:58:39

Perl腳本

2009-09-08 17:57:54

LINQ to Dat

2009-08-28 10:48:00

linux操作系統(tǒng)linux學(xué)習(xí)掃瞄

2009-04-12 09:02:32

Symbian諾基亞移動OS

2009-04-12 09:06:00

Symbian諾基亞移動OS

2009-04-12 08:59:05

Symbian諾基亞移動OS

2009-04-12 09:00:08

Symbian諾基亞移動OS

2009-04-12 09:01:05

Symbian諾基亞移動OS

2011-03-15 16:19:08

iptables

2009-09-15 16:52:19

Linq To Dat

2009-09-08 18:14:12

CCNA學(xué)習(xí)筆記

2011-09-09 11:05:56

Widget

2011-08-09 17:21:37

點贊
收藏

51CTO技術(shù)棧公眾號