Spring.Net框架簡(jiǎn)介
一、Spring.Net簡(jiǎn)介
Spring.NET為建立企業(yè)級(jí)應(yīng)用提供了一套輕量級(jí)的解決方案。
通過Spring.NET,我們可以用統(tǒng)一且透明的方式來配置應(yīng)用程序。Spring.NET的重點(diǎn)是為中間層提供聲明式事務(wù)管理,以及一個(gè)功能齊全的ASP.NET擴(kuò)展框架。Spring.NET是非侵入式的,代碼對(duì)框架本身不會(huì)產(chǎn)生任何依賴。
Spring.Core庫(kù)是框架的基礎(chǔ),提供依賴注入功能。Spring.NET中大多數(shù)類庫(kù)依賴或擴(kuò)展了Spring.Core的功能。IObjectFactory接口提供了一個(gè)簡(jiǎn)單而優(yōu)雅的工廠模式,移除了對(duì)單例和一些服務(wù)定位stub的必要。允許你將真正的程序邏輯與配置解耦。作為對(duì)IObjectFactory的擴(kuò)展,IApplicationContext接口也在Spring.Core中,Spring DOTNET是一個(gè)關(guān)注于.NET企業(yè)應(yīng)用開發(fā)的應(yīng)用程序框架。它能夠提供很多方面的功能,例如控制反轉(zhuǎn)(Inversion of Control,英文縮寫為IOC)、依賴注入(Dependency Injection,英文縮寫為DI)、面向方面編程(AOP)、數(shù)據(jù)訪問抽象,以及ASP.NET集成等?;贘ava的spring框架的核心概念和價(jià)值已被應(yīng)用到.NET。Spring.NET 1.0包含一個(gè)完全功能的依賴注入容器和AOP庫(kù)。后續(xù)的發(fā)布將包含對(duì)Spring.NET、Remoting和數(shù)據(jù)訪問的支持。
二、依賴注入
依賴注入即控制反轉(zhuǎn)
控制反轉(zhuǎn)(Inversion of Control,英文縮寫為IOC)是一個(gè)重要的面向?qū)ο缶幊痰姆▌t來削減計(jì)算機(jī)程序的耦合問題,也是輕量級(jí)的Spring框架的核心??刂品崔D(zhuǎn)一般分為兩種類型:依賴注入(Dependency Injection,簡(jiǎn)稱DI)和依賴查找。依賴注入應(yīng)用比較廣泛。
其本質(zhì)就是反射工廠。
在運(yùn)行期間,由外部容器動(dòng)態(tài)地將依賴對(duì)象注入到容器中。
Interface Driven Design接口驅(qū)動(dòng),接口驅(qū)動(dòng)有很多好處,可以提供不同靈活的子類實(shí)現(xiàn),增加代碼穩(wěn)定和健壯性等等,但是接口一定是需要實(shí)現(xiàn)的,也就是如下語句遲早要執(zhí)行:AInterface a = new AInterfaceImp(); 這樣一來,耦合關(guān)系就產(chǎn)生了,如:
class A { AInterface a; public A() { } //方法 public void Method() { //實(shí)例化對(duì)象 a = new AInterfaceImp(); } }
在上面的代碼中,Class A與AInterfaceImp就是依賴關(guān)系,如果想使用AInterface的另外一個(gè)實(shí)現(xiàn)類就需要更改代碼了。當(dāng)然,我們可以建立一個(gè)Factory來根據(jù)條件生成想要的AInterface的具體實(shí)現(xiàn),代碼如下:
public class InterfaceImpFactory { public AInterface Create(Object obj) { if (obj.Equals(condA)) { return new AInterfaceImpA(); } if (obj.Equals(condB)) { return new AInterfaceImpB(); } else { return new AInterfaceImp(); } } }
上面的代碼中,表面上看來在一定程度上緩解了以上問題,但實(shí)質(zhì)上這種代碼耦合并沒有改變。通過IoC模式可以徹底解決這種耦合,它把耦合從代碼中移出去,放到統(tǒng)一的XML 文件中,通過一個(gè)容器在需要的時(shí)候把這個(gè)依賴關(guān)系形成,即把需要的接口實(shí)現(xiàn)注入到需要它的類中,這可能就是“依賴注入”說法的來源了。
三、DLL文件
Spring.Core.dll:包含Spring.NET框架基本的核心工具類,Spring.NET其他組件都要使用這里的類,是其他組件的基本核心。
Spring.NET其他組件都要使用到這里的類,是其他組件的基本核心。
Spring.Aop.dll:Spring.NET的AOP框架。
Spring.Web.dll:提供了對(duì)Web的支持。
Spring.Web.Mvc3.dll:Spring.NET自己的Web框架。
Common.Logging.dll:Spring.Net日志功能。
到此這篇關(guān)于Spring.Net框架的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.Net core下直接執(zhí)行SQL語句并生成DataTable的實(shí)現(xiàn)方法
.net core可以執(zhí)行SQL語句,但是只能生成強(qiáng)類型的返回結(jié)果。這篇文章主要介紹了.Net core下直接執(zhí)行SQL語句并生成DataTable的相關(guān)資料,需要的朋友可以參考下2016-11-11ASP.NET?MVC5網(wǎng)站開發(fā)之總體概述(一)
這篇文章主要為大家詳細(xì)介紹了ASP.NET?MVC5網(wǎng)站開發(fā)之總體概述,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08C#,winform,ShowDialog,子窗體向父窗體傳值
窗體的show方法,沒有給調(diào)用代碼任何通知,如果需要通知,使用showdialog是一種好的選擇。 在調(diào)用show方法后,show方法后面的代碼會(huì)立即執(zhí)行,2008-08-08SQL為查詢的結(jié)果加上序號(hào)(ROW_NUMBER) 合并多個(gè)查詢結(jié)果
SQL為查詢的結(jié)果加上序號(hào)(ROW_NUMBER) 合并多個(gè)查詢結(jié)果2010-03-03asp.net中在用ajax格式傳遞數(shù)據(jù)到aspx頁面時(shí)出現(xiàn)亂碼
asp.net中在用ajax格式傳遞數(shù)據(jù)到aspx頁面時(shí)有時(shí)會(huì)出現(xiàn)亂碼,很是疑惑,不要走開接下來介紹解決方法,感興趣的朋友可以了解下2013-01-01Community Server專題三:HttpModule
Community Server專題三:HttpModule...2007-03-03詳解如何在ASP.NET Core中應(yīng)用Entity Framework
本篇文章主要介紹了如何在ASP.NET Core中應(yīng)用Entity Framework,具有一定的參考價(jià)值,有興趣的可以一起了解一下。2016-12-12