【ASP.NET專題】(11)——Spring.NET架構簡介

來源:互聯網
上載者:User
文章目錄
  • 一、架構介紹
  • 二、Spring架構的作用

從該文章開始主要學習Spring.NET架構,對於很多程式員來說,Spring.NET架構是矛盾的,大家必須配置一些以前沒有接觸的檔案,同時更多的程式員卻還不知道Spring.NET架構究竟是什麼玩意,本章節主要介紹Spring.NET架構簡介及模組說明。

一、架構介紹

Spring架構天生麗質,因其先進架構系列沿思想整合,使從產生就深得歡迎,設計模式運爐火純青地方,幽雅魅力征服許JAVA,使這些成信徒,得程式員心得天,Spring引領J2EE潮流,同時Spring各種架構強強聯手信徒儘早飛翔插翅膀,比如老哥SSH(配置煩瑣strutsHibernate、Spring整合)、起秀EJSA(身材輕便使靈活及零配置EASYJWEB+JPA+Spring+Acegi,適合注重效率個人企業)等都藉助Spring走向成熟,帶無盡方便。

那麼做.Net們能不能欣賞品嘗Spring這道餐呢,答案肯定,Spring團隊應JAVASpring架構思想進行移植,貢獻出適合.Net項目Spring.NET架構。網Spring.Net文資料少,BAIDU目搜尋不關於spring.net文資料,這裡們盡能使文說明。

首先們認識Spring.NET,簡而言Spring.NET就利各種強設計模式做工具管理們項目體繫結構。 Spring.NET使優秀久經考驗設計模式,使們能夠科學合理管理整合們企業級各個層面及些分散組,並良好協調處理們間關係,增強項目健壯性。

Spring.NET IoC容器所解決,企業應類、象服務組合成應程式問題。IoC容器通過統(按:formalized,言意這些方式都已經定型、經過業界年考驗)方式分散組組合成完整應程式。Spring.NET架構所采,都被業界無數應程式考驗年、已經被定型設計模式最佳編程方式,實際,這些模式已經成們架構時法典,而通過Spring.NET,們以直接們整合自己應程式。目已有組織機構Spring架構出強壯、維護性好應程式,這確實非常好。

主要描述Spring.NET架構模組說明:

{
function onclick()
{
get_larger(this)
}
}" src="http://img.kanwenzhang.com/images/t2/200907/20090705222804635.jpg" border="0" alt="Spring.net(<a href=">

1、Spring.Core作整個架構基礎,實現依賴注入功能。

Spring.NET部分模組都依賴或擴充該模組。Spring.Core基礎IObjectFactory介面,該介面個簡單而優雅方式實現原廠模式,使們以無需自行編singleton類型眾服務定位器,並象配置及其依賴關係具體程式邏輯解耦。該模組IApplicationContext介面IObjectFactory擴充,增加諸企業級功能,包括使資源文進行文本本地化、事傳播資源裝載等等。

2、Spring.AOP業務象提供面向方面編程(AOP)支援。

AOP完善IoC容器功能,建立企業應使聲明式服務奠定堅實基礎。

3、Spring.WebASP.NET進行系列功能擴充,包括ASP.NET頁面進行依賴注入、雙向資料繫結、ASP.NET 1.1使Master page、以及增強本地化功能支援等。

4、Spring.Services任意“普通”象(意沒有繼承任何指定基底類型象)發布企業服務(COM+)或遠程象。

通過依賴注入特性中繼資料覆蓋等功能,該模組使.NETWeb服務獲得極靈活性。同時支援Windows台服務。

5、Spring.Data定義個抽象資料訪問層,以跨越各種資料訪問技術(從ADO.NET各種ORM)進行資料訪問。

該模組包含個ADO.NET抽象層,減少使傳統ADO.NET進行編碼交易管理時工作量。

6、Spring.ORM時流行ORM類庫提供個整合層,其包含聲明式交易管理等諸功能。

通過以上的介紹,大致對Spring.NET架構有個粗略的瞭解,至於如何在項目開發中引入Spring.NET架構以及如何使用Spring.NET架構協助系統開發,將在後面的章節給出詳細的說明。

二、Spring架構的作用

由於目前還沒有找到Spring.NET的作用和強大所在,而J2EE方面的Spring介紹文章相當的普遍,再此轉載了一篇關於《spring作用》的文章,該文章涉及的內容不深,但是很簡單的解釋了Spring架構的作用和使用方法。【注意以下代碼為Java代碼,只為說明spring】

應用背景:有一個應用,要求能夠很好地接受u盤或者移動硬碟(假如兩種介質的讀寫演算法不一樣)的接入,你如果是開發人員,應該怎麼樣開發這個應用?

•注意:程式裡面只有兩個功能:ReadInfo(),WriteInfo()

•方案1:在應用裡面將所有可能的介質演算法都開發一遍。但此方法不好,每次都要修改代碼

•方案2:用spring管理

如下:

1、定義隨身碟類:

//定義隨身碟類</p><p>package usbdisk;<br />import app.IDISK; </p><p>public class UsbDisk implements IDISK{</p><p> public String readInfo(){</p><p> return "從隨身碟讀過來的資訊";</p><p> }</p><p> public void writeInfo(String msg){</p><p> System.out.println("向隨身碟寫出資訊:" + msg);</p><p> }</p><p>}<br />

2、定義移動硬碟類:

package movedisk;</p><p>import app.IDISK; </p><p>public class MoveDisk implements IDISK{</p><p> public String readInfo(){</p><p> return "從移動硬碟讀過來的資訊";</p><p> }</p><p> public void writeInfo(String msg){</p><p> System.out.println("向移動硬碟寫出資訊:" + msg);</p><p> }</p><p>}</p><p>

3、定義一個介面管理隨身碟和移動盤:

package app; </p><p>public interface IDISK {</p><p> public abstract String readInfo();</p><p> public abstract void writeInfo(String msg);</p><p>}<br />

4、編寫設定檔:

<?xml version="1.0" encoding="UTF-8"?></p><p><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"></p><p><beans></p><p> <!-- 對象的產生,由架構通過反射機制完成,控制權從前端主程式轉化到了架構,</p><p> 這種思想叫做控制反轉(IOC),Inverse Of Control,可以很好的實現模組切換--></p><p> <bean id="disk" class="usbdisk.UsbDisk"></bean></p><p></beans>

5、編寫測試代碼:

package app;</p><p>import org.springframework.context.ApplicationContext;</p><p>import org.springframework.context.support.FileSystemXmlApplicationContext;</p><p>public class MainModule { </p><p> public static void main(String[] args) {</p><p> //讀取設定檔</p><p> ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");</p><p> IDISK disk =(IDISK)context.getBean("disk");//根據設定檔的內容,執行個體化對象並且返回</p><p> disk.writeInfo("你們好");</p><p> } </p><p>}

可以看到此disk是指usbdisk.UsbDisk,指的是隨身碟,如果要改為移動盤呢,只要在配製檔案中改<bean id="disk" class="movedisk .MoveDisk "></bean> class的值就可以了。

調用方(應用)和模組(u盤或者移動硬碟)之間用設定檔聯絡起來。

當u盤或者移動硬碟接入時,改變更配置置檔案,調用方始終在讀設定檔,並沒有改變原始碼.

設定檔改變,可以進行模組切換,甚至改變模組行為。

測試代碼僅僅面向介面編程,而無需知道實作類別的具體名稱。同時,我們可以很簡單的通過修改設定檔來切換具體的底層實作類別。

•Spring作用1:這種思想可以很好地實現同類不同質的模組切換:例如要用不同的方法將內容寫入到不同的介質組件依賴關係減少,上面的例子中,我們通過Spring,在運行期動態將字串注入到實作類別的屬性中。這種概念將參數傳遞交給容器去做,叫做依賴注入.

•Spring作用2:可以方便地通過設定檔改變模組行為,動態注入屬性值。

由此可見Spring可以更好的協助我們實現代碼分離。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.