簡單介紹一下Spring框架

? ? ? ?優(yōu)效學(xué)院,名師執(zhí)教,學(xué)習(xí)更優(yōu)效,IT在線教育領(lǐng)導(dǎo)者。三人行必有我?guī)煟松切枰粩鄬W(xué)習(xí)的,在這里我們相遇就是緣分,歡迎大家加群----四六零五七零八二四----讓我們共同進(jìn)步!希望各位可以看完這篇文章,也歡迎大家在下面留言討論,天冷了,也動(dòng)動(dòng)手指轉(zhuǎn)發(fā)收藏一下,謝謝大家!

? ? ? ?Spring是一個(gè)開源的控制反轉(zhuǎn)(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是簡化企業(yè)開發(fā)。

? ? ? ?使用Spring可以降低組件之間的耦合度,實(shí)現(xiàn)軟件各層之間的解耦??梢允褂萌萜魈峁┑谋姸喾?wù),如:事務(wù)管理服務(wù)、消息服務(wù)等等。當(dāng)我們使用容器管理事務(wù)時(shí),開發(fā)人員就不再需要手工控制事務(wù).也不需處理復(fù)雜的事務(wù)傳播。容器提供單例模式支持,開發(fā)人員不再需要自己編寫實(shí)現(xiàn)代碼。容器提供了AOP技術(shù),利用它很容易實(shí)現(xiàn)如權(quán)限攔截、運(yùn)行期監(jiān)控等功能。容器提供的眾多輔作類,使用這些類能夠加快應(yīng)用的開發(fā),如:JdbcTemplate、HibernateTemplate。Spring對(duì)于主流的應(yīng)用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,這樣更便于應(yīng)用的開發(fā)。

? ? ? ? Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。Spring的作用就是完全解耦類之間的依賴關(guān)系,一個(gè)類如果要依賴什么,那就是一個(gè)接口。至于如何實(shí)現(xiàn)這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現(xiàn)了這個(gè)接口的類,就可以輕松的通過xml配置文件把實(shí)現(xiàn)類注射到調(diào)用接口的那個(gè)類里。所有類之間的這種依賴關(guān)系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。

? ? ? ? 針對(duì)Spring的學(xué)習(xí),第一步就是理解IoC和AOP,這可以說是基礎(chǔ)。

? ? ? ?IoC控制反轉(zhuǎn),對(duì)象創(chuàng)建責(zé)任的反轉(zhuǎn)。我們知道,Spring中的BeanFacotory是IoC容器的核心接口,負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中對(duì)象及監(jiān)理這些對(duì)象間的依賴。XmlBeanFacotory實(shí)現(xiàn)BeanFactory接口,通過獲取xml配置文件數(shù)據(jù),組成應(yīng)用對(duì)象及對(duì)象間的依賴關(guān)系。

? ? ? ?順便說一下,在Spring中有三種注入方式,第一種是set注入,第二種是接口注入,還有一種是構(gòu)造方法注入。

? ? ? ? AOP面向切面編程,也就是縱向的編程。在OOP面向?qū)ο蟮氖褂弥校瑹o可避免的會(huì)出現(xiàn)代碼重復(fù),而且使用面向?qū)ο蟮木幊谭绞剑@種重復(fù)無法避免,比如用戶權(quán)限判斷中,根據(jù)相應(yīng)的權(quán)限執(zhí)行相應(yīng)的方法;在servlet中設(shè)置編碼格式時(shí),同樣相同的代碼出現(xiàn)很多次,而且還根業(yè)務(wù)無關(guān),很容易忘記寫,結(jié)果運(yùn)行的時(shí)候就出現(xiàn)亂碼拉。這種重復(fù)代碼不僅使編碼麻煩,而且還不容易維護(hù)。而AOP則將這些代碼整理起來,將解決某個(gè)切面問題的代碼單獨(dú)的放在某個(gè)模塊中,然后再織入到程序中。

? ? ? ?Spring框架中AOP的使用步驟,第一步拷貝jar包,第二步spring配置文件中增加命名空間和約束文件,第三步寫被代理的類和擴(kuò)展類第四步由配置文件聲明。

? ? ? ?弄清楚了IoC和AOP之后,要學(xué)習(xí)的是SpringMVC。想要弄清楚Spring是怎么配置的,就要學(xué)會(huì)Servlet和JSP。學(xué)習(xí)Servlet是一定不能省的,現(xiàn)在流行的SpringMVC和Struts2都是基于Servlet的,Servlet是MVC模型最為基本的表現(xiàn)形態(tài)。只有深入了解Servlet才能理解后邊的新技術(shù)。

? ? ? ?我們在瀏覽器點(diǎn)擊鏈接和按鈕產(chǎn)生的消息不是發(fā)送給Servlet的,而是發(fā)送給web容器的。Web容器接收消息后轉(zhuǎn)交給Servlet處理。而web容器和Servlet的交流依賴于Servlet接口。Servlet是一種接口規(guī)范,所以只要我們編寫的Java類符合Servlet規(guī)范,那么就能被Web容器識(shí)別并被容器管理。Servlet容器通過向方法的參數(shù)賦值HttpServletRequest或者HttpServletResponse傳遞來實(shí)現(xiàn)請(qǐng)求和響應(yīng)。

? ? ? ? JSP是面向服務(wù)器的。我們在寫JSP時(shí)預(yù)設(shè)客戶端是瀏覽器,JSP就是一個(gè)Servlet。

? ? ? ? ?最后,如果想有一群“臭味相投”的朋友來一起交流學(xué)習(xí)的話,歡迎大家搜索群460570824,讓我們共同進(jìn)步!

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,261評(píng)論 6 342
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,787評(píng)論 11 349
  • 文章作者:Tyan博客:noahsnail.com 2.Introduction to the Spring Fr...
    SnailTyan閱讀 5,533評(píng)論 7 56
  • 什么是Spring Spring是一個(gè)開源的Java EE開發(fā)框架。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,771評(píng)論 1 133

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