Spring1-基礎(chǔ)知識

真不知道我是太餓了 還是太餓了 還是太餓了,文章標題是Spring1-基礎(chǔ)知識我盡然打成了雞翅.

這一篇文章說白了就是洗腦的,讓你知道Spring有多好,當(dāng)然他本來就很好,學(xué)起來也別其它框架要簡單,例如hibernate,struts等.
但是如果要深入了解他的代碼卻有點困難,當(dāng)然我覺得是有點吃力的.
好了廢話不多說,我們開始吧.

基礎(chǔ)知識

什么是Spring

這里我給大家找了三家網(wǎng)站收集的面試題
并發(fā)編程網(wǎng) - ifeve.com
importnew
oschina
至于說我為什么要找這三篇呢,因為在谷歌第一頁的前幾條嘛.
這三個面試題都有提到過什么是Spring,但是他們的說的都不一樣.那么可能有人要問,對于初學(xué)者來說我到底記住那個答案呢?
對于這種理論的,我個人認為沒有統(tǒng)一的答案全靠自己的理解,所以我對這種理論的東西都是先不去管,等我學(xué)完了后再根據(jù)自己的理解做總結(jié),最后在谷歌所搜看看別人是怎么理解的.
那廢話了這么多,我還是說一下我個人對Spring的理解吧.
Spring就是基于IOC和AOP的一個框架,并且為我們提供了一些基礎(chǔ)解決方案,例如事務(wù)控制.

控制反轉(zhuǎn)和依賴注入

控制反轉(zhuǎn)(Inversion of Control),簡稱IoC.同時控制反轉(zhuǎn)也叫做依賴注入.它們兩個是一樣.
有人可能就是不覺得它們是一樣的,就覺得控制反轉(zhuǎn)就是控制反轉(zhuǎn),依賴注入就是依賴注入.
他們可能認為控制反轉(zhuǎn)就是,我們不使用new關(guān)鍵字來創(chuàng)建對象,而是讓Spring幫我們創(chuàng)建對象和管理對象的生命周期,當(dāng)我們用到這個對象的時候就從IoC容器中取出.事實上這是對的.我們的IoC容器就是幫我們做這個事情的.
然而他們又認為,依賴注入是讓對象初始化的時候,這個對象中用到哪些對象就將哪些對象注入到此對象想中,就像我們后面要說的注入SessionFactory一樣.
額...這樣理解我不知道是不是正確的,但是我推薦大家看一下Spring官方文檔推薦的一片文章Inversion of Control Containers and the Dependency Injection pattern這是一篇英文文章,當(dāng)然國內(nèi)有大神已經(jīng)將它翻譯為中文了IoC容器和Dependency Injection模式.總之我個人覺得非常不錯,老人的經(jīng)驗之談.

AOP

AOP面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護.
也就是說我們可以將一些重復(fù)代碼,例如事務(wù),日志等.進行抽取統(tǒng)一編碼維護.

Spring框架組成

Spring框架組成.png

Spring框架至今已集成了20多個模塊。這些模塊主要被分如下圖所示的核心容器、數(shù)據(jù)訪問/集成,、Web、AOP(面向切面編程)、工具、消息和測試模塊。
下面我詳細說說這些模塊
核心容器
主要組成有spring-core,spring-beans,spring-context,spring-context-supportspring-expression (Spring表達式語言)模塊.
其中spring-core,spring-beans為Spring框架提供了基礎(chǔ).
spring-context模塊: 這個模塊建立在基礎(chǔ)模塊上,提供了對框架的訪問方式,例如通過ApplicationContext接口來獲取IoC容器中Bean.
例如

ApplicationContext applicationContext = new ClassPathXmlApplicationContext();
applicationContext.getBean("BeanName");

spring-context-support模塊: 將第三方庫集成到Spring中,例如緩存 郵件 任務(wù)調(diào)度等.

AOP
spring-aop模塊: 提供了標準的AOP面向編程.允許我們自定義方法攔截器或切入點.
spring-aspects模塊: 提供與AspectJ的集成.

數(shù)據(jù)訪問/集成
spring-jdbc模塊: 提供了一個JDBC抽象層,可以為我們省區(qū)繁瑣的JDBC編碼.
spring-orm模塊: 提供了ORM框架的集成.例如hibernate.

Web
spring-web模塊: 提供基本的面向Web的集成功能.
spring-webmvc模塊: (也稱為Web-Servlet模塊)包含用于Web 應(yīng)用程序的模型視圖控制器和REST Web Services實現(xiàn).

Spring下載地址
Spring教程,這個是某論壇的翻譯官網(wǎng)的.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 什么是Spring Spring是一個開源的Java EE開發(fā)框架。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,771評論 1 133
  • spring mvc 工作機制(原理): DispatcherServlet主要用作職責(zé)調(diào)度工作,本身主要用于控制...
    java大濕兄閱讀 1,980評論 5 24
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風(fēng)情閱讀 1,855評論 0 3
  • 一聲悶雷 打斷了歲月的念想 任憑浪濤翻滾 你依舊倚樓閑坐 不惜夢想荒蕪 不管草木瘋長 時間煮雨 青梅不待 我站在你...
    聶小青閱讀 407評論 0 4

友情鏈接更多精彩內(nèi)容