您好,登錄后才能下訂單哦!
這篇文章主要講解了“Spring框架的原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring框架的原理是什么”吧!
簡要介紹spring的原理,并結合一個簡單的實例,如何配置使用spring。
在用ssh(Struts+Spring+Hibernate)實現的mvc模式中Spring是作為連接Struts和Hibernate的控制層。 與Spring框架相關的概念有以下: 輕量級:輕量級是針對重量級容器(EJB)來說的,Spring的核心包不到1M大小,而使用Spring的核心包所需的資源也很小,所以可以在小型設備中使用。 非侵入性:所有的框架都是提供大量的功能公用戶去使用,從而簡化開發時間和成本,但由于大量的使用了框架的API,使應用程序和框架發生了大量的依賴性,無法從框架中獨立出來,更加無法使程序組件在其他程序中使用,這樣的框架叫做入侵式的框架,而Spring目標是一個非入侵式的服務框架。 容器:容器就是一個幫助你把原來自行編寫程序去管理對象關系的工作轉移給容器來做。Spring提供了容器功能,容器可以管理對象的生命周期、對象與對象之間的關系、你可以通過編寫XML來設置對象關系和初始值,這樣容器在啟動之后,所有的對象都直接可以使用,不用編寫任何編碼來產生對象。 IOC/DI:Spring最核心的概念就是IOC(反轉控制),而他的另一個名字就是DI(依賴注入);使用Spring,你不必在程序中維護對象的依賴關系,只要在xml中設定即可,Spring容器會自己根據相關的配置去產生他們之間的關系,所有的關系都是都是在容器運行的時候注入的,而他們本身是沒有關系的。打個比方:比如張三和李四,之前是沒有任何關系的兩個對象,但當他倆進入班級這個容器中后,班級這個容器就將他倆賦予了同學的關系。這樣的做法就是用容器去賦予對象之間的關系,而不是對象本身之間來創建關系。這樣做的好處顯然實現了松偶合。 AOP(Aspect Oriented Programming面向切面/方面編程):Spring最被人重視的另一個方面就是對AOP的支持,AOP是Spring支持的一個子容器。在一個服務流程中插入與業務邏輯無關的系統服務邏輯(如:Logging登錄、Security安全等),而把這些獨立出來設計成一個對象,這樣的對象稱為Aspect。打個比方:做一次環球旅行,在旅行途中要經過若干國家的海關關口辦理出入境手續,這樣的一個一個的關口就是整個旅行流程中的一個一個的Aspect。 demo:(僅僅解釋了什么是依賴注入DI或者叫反轉控制IOC)
1、首先看一個原來的操作 //User.java package org.myspring; public class User { private String username; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } //Test.java package org.myspring; public class Test { public static void main(String[] args) { User user=new User(); user.setUsername("zhangsan"); System.out.println(user.getUsername()); } } 以上是原始的做法,產生的問題是:如果想要把zhangsan改為lisi則需要在Test類中修改代碼,這樣是一種緊耦合,改動一個類就牽扯到另外一個類。 松耦合的情況是User.java和Test.java這兩個類都不需要改動,就能實現輸出不同username屬性的效果,這就需要加入Spring的IOC/DI機制。
方法如下: 2、MyEclipse->Add Spring Capabilities...->僅加入核心包即可,這樣就生成了applicationContext.xml配置文件
3、修改applicationContext.xml:在xml文件的編輯頁中 右鍵->Spring->New Bean,在彈出窗口中進行如下圖的設置。
4、新的測試類 //Test.java package org.myspring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext c FileSystemXmlApplicationContext("src/org/myspring/applicationContext.xml"); User user=(User)context.getBean("user"); System.out.println("name:"+user.getUsername()+"; age:"+user.getAge()); } } 注意:在上面的代碼中context.getBean()返回的是一個Object對象,需要進行相應的類對象的轉換。在代碼中沒有出現用new來實例化對象的語句,實現了Test類跟User類的松耦合。對象的實例化都在xml配置文件中實現了。
感謝各位的閱讀,以上就是“Spring框架的原理是什么”的內容了,經過本文的學習后,相信大家對Spring框架的原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。