網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、Spring.Net簡(jiǎn)介
Spring.NET為建立企業(yè)級(jí)應(yīng)用提供了一套輕量級(jí)的解決方案。
通過(guò)Spring.NET,我們可以用統(tǒng)一且透明的方式來(lái)配置應(yīng)用程序。Spring.NET的重點(diǎn)是為中間層提供聲明式事務(wù)管理,以及一個(gè)功能齊全的ASP.NET擴(kuò)展框架。Spring.NET是非侵入式的,代碼對(duì)框架本身不會(huì)產(chǎn)生任何依賴(lài)。
Spring.Core庫(kù)是框架的基礎(chǔ),提供依賴(lài)注入功能。Spring.NET中大多數(shù)類(lèi)庫(kù)依賴(lài)或擴(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)用開(kāi)發(fā)的應(yīng)用程序框架。它能夠提供很多方面的功能,例如控制反轉(zhuǎn)(Inversion of Control,英文縮寫(xiě)為IOC)、依賴(lài)注入(Dependency Injection,英文縮寫(xiě)為DI)、面向方面編程(AOP)、數(shù)據(jù)訪問(wèn)抽象,以及ASP.NET集成等?;贘ava的spring框架的核心概念和價(jià)值已被應(yīng)用到.NET。Spring.NET 1.0包含一個(gè)完全功能的依賴(lài)注入容器和AOP庫(kù)。后續(xù)的發(fā)布將包含對(duì)Spring.NET、Remoting和數(shù)據(jù)訪問(wèn)的支持。
二、依賴(lài)注入
依賴(lài)注入即控制反轉(zhuǎn)
控制反轉(zhuǎn)(Inversion of Control,英文縮寫(xiě)為IOC)是一個(gè)重要的面向?qū)ο缶幊痰姆▌t來(lái)削減計(jì)算機(jī)程序的耦合問(wèn)題,也是輕量級(jí)的Spring框架的核心??刂品崔D(zhuǎn)一般分為兩種類(lèi)型:依賴(lài)注入(Dependency Injection,簡(jiǎn)稱(chēng)DI)和依賴(lài)查找。依賴(lài)注入應(yīng)用比較廣泛。
其本質(zhì)就是反射工廠。
在運(yùn)行期間,由外部容器動(dòng)態(tài)地將依賴(lài)對(duì)象注入到容器中。
Interface Driven Design接口驅(qū)動(dòng),接口驅(qū)動(dòng)有很多好處,可以提供不同靈活的子類(lèi)實(shí)現(xiàn),增加代碼穩(wěn)定和健壯性等等,但是接口一定是需要實(shí)現(xiàn)的,也就是如下語(yǔ)句遲早要執(zhí)行:AInterface a = new AInterfaceImp(); 這樣一來(lái),耦合關(guān)系就產(chǎn)生了,如:
class A { AInterface a; public A() { } //方法 public void Method() { //實(shí)例化對(duì)象 a = new AInterfaceImp(); } }
在上面的代碼中,Class A與AInterfaceImp就是依賴(lài)關(guān)系,如果想使用AInterface的另外一個(gè)實(shí)現(xiàn)類(lèi)就需要更改代碼了。當(dāng)然,我們可以建立一個(gè)Factory來(lái)根據(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(); } } }
上面的代碼中,表面上看來(lái)在一定程度上緩解了以上問(wèn)題,但實(shí)質(zhì)上這種代碼耦合并沒(méi)有改變。通過(guò)IoC模式可以徹底解決這種耦合,它把耦合從代碼中移出去,放到統(tǒng)一的XML 文件中,通過(guò)一個(gè)容器在需要的時(shí)候把這個(gè)依賴(lài)關(guān)系形成,即把需要的接口實(shí)現(xiàn)注入到需要它的類(lèi)中,這可能就是“依賴(lài)注入”說(shuō)法的來(lái)源了。
三、DLL文件
Spring.Core.dll:包含Spring.NET框架基本的核心工具類(lèi),Spring.NET其他組件都要使用這里的類(lèi),是其他組件的基本核心。
Spring.NET其他組件都要使用到這里的類(lèi),是其他組件的基本核心。
Spring.Aop.dll:Spring.NET的AOP框架。
Spring.Web.dll:提供了對(duì)Web的支持。
Spring.Web.Mvc3.dll:Spring.NET自己的Web框架。
Common.Logging.dll:Spring.Net日志功能。
原文鏈接:https://www.cnblogs.com/dotnet261010/p/7372471.html
相關(guān)推薦
- 2022-03-07 golan參數(shù)校驗(yàn)Validator_Golang
- 2022-06-21 C語(yǔ)言平衡二叉樹(shù)真題練習(xí)_C 語(yǔ)言
- 2022-06-06 flutter 布局管理詳解
- 2022-11-25 CentOS?7.9?升級(jí)內(nèi)核?kernel-ml-5.6.14版本的方法_云其它
- 2022-04-20 iOS實(shí)現(xiàn)多控制器切換效果_IOS
- 2023-05-31 Hadoop腳本遠(yuǎn)程控制中SSH常見(jiàn)問(wèn)題詳解_服務(wù)器其它
- 2022-05-25 RedisTemplate實(shí)現(xiàn)setnx分布式鎖
- 2022-09-19 C/C++淺析鄰接表拓?fù)渑判蛩惴ǖ膶?shí)現(xiàn)_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支