Spring.Net--控制反轉(zhuǎn)

Spring.jpg

? Spring.Net 為建立企業(yè)級應(yīng)用提供了一套輕量級的解決方案问潭。通過Spring.NET,我們可以用統(tǒng)一且透明的方式來配置應(yīng)用程序。Spring.NET的重點是為中間層提供聲明式事務(wù)管理,以及一個功能齊全的ASP.NET擴展框架永罚。Spring.NET是非侵入式的,代碼對框架本身不會產(chǎn)生任何依賴.

? Spring.Net 就是抽象工廠模式 , 它使用配置文件的方式,去是實現(xiàn)了控制反轉(zhuǎn), 控制反轉(zhuǎn)就是通過依賴注入的方式是對象A不需要使用new對象B, 而是通過容器的方式,將對象B注入到對象A的應(yīng)用.

通過簡單的例子來介紹Spring.Net簡單的使用:

第一步 : 先新建一個控制臺程序;

第二步 : 引入Spring.Net文件,可用在NuGet中搜索,下載.也可以在官網(wǎng)中下載并在項目引用相關(guān).dll文件;

第三步 : 接下來就是創(chuàng)建相關(guān)的類文件

using System;

namespace SpringdotNetDemo {
    public class Service1 {
        public string Name { get; set; }
        public Service2 Service { get; set; }
        public void Show() {
            Service.Show();
            Console.WriteLine("Spring.Net:" + Name);
        }
    }
}
using System;

namespace SpringdotNetDemo {
    public class Service2 {
        public void Show() {
            Console.WriteLine("Service2");
        }
    }
}

第四步 : 在App.Config中配置Spring.Net

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--Spring.Net節(jié)點配置-->
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <!--Spring.Net 配置-->
  <spring>
    <context>
      <!--容器配置-->
      <resource uri="config://spring/objects"/>
        <!--可以將objects節(jié)點的配置保存在xml文件卧秘,更改文件更改屬性呢袱,復制到輸出目錄:始終復制-->
        <!--<resource uri="file://objects.xml"/>-->
    </context>
    <objects xmlns="http://www.springframework.net">
      <!--這里放容器里面的所有節(jié)點-->
      <description>An  example that demonstrates simple IoC features.</description>
      <!--name 必須要唯一的,type=類的全名稱翅敌,所在的程序集-->
      <object name="Service1" type="SpringdotNetDemo.Serive1, SpringdotNetDemo">
        <!--設(shè)置Service1中屬性的值-->
        <property name="Name" value="Service1.Name"/>
        <property name="Service" ref="Service2"/>
      </object>
      <object name="Service2" type="SpringdotNetDemo.Serive2, SpringdotNetDemo"></object>
    </objects>
  </spring>

</configuration>

第五步 : 在主函數(shù)中應(yīng)用配置:

using Spring.Context;
using Spring.Context.Support;
using System;

namespace SpringdotNetDemo {
    class Program {
        static void Main(string[] args) {
            //Spring.Net 創(chuàng)建實例的方式轉(zhuǎn)為容器幫我們創(chuàng)建
            //創(chuàng)建spring容器上下文
            IApplicationContext context = ContextRegistry.GetContext();
            //通過容器創(chuàng)建對象
            var ser = context.GetObject("Service1") as Service1;
            ser.Show();
            Console.ReadKey();
        }
    }
}

其運行結(jié)果:

Result.jpg

以上就是Spring.Net的簡單應(yīng)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末羞福,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蚯涮,更是在濱河造成了極大的恐慌治专,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遭顶,死亡現(xiàn)場離奇詭異看靠,居然都是意外死亡,警方通過查閱死者的電腦和手機液肌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸥滨,“玉大人嗦哆,你說我怎么就攤上這事谤祖。” “怎么了老速?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵粥喜,是天一觀的道長。 經(jīng)常有香客問我橘券,道長额湘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任旁舰,我火速辦了婚禮锋华,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箭窜。我一直安慰自己毯焕,他們只是感情好,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布磺樱。 她就那樣靜靜地躺著纳猫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪竹捉。 梳的紋絲不亂的頭發(fā)上芜辕,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音块差,去河邊找鬼侵续。 笑死,一個胖子當著我的面吹牛憾儒,可吹牛的內(nèi)容都是我干的询兴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼起趾,長吁一口氣:“原來是場噩夢啊……” “哼诗舰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起训裆,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤眶根,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后边琉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體属百,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年变姨,在試婚紗的時候發(fā)現(xiàn)自己被綠了族扰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖渔呵,靈堂內(nèi)的尸體忽然破棺而出怒竿,到底是詐尸還是另有隱情,我是刑警寧澤扩氢,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布耕驰,位于F島的核電站,受9級特大地震影響录豺,放射性物質(zhì)發(fā)生泄漏朦肘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一双饥、第九天 我趴在偏房一處隱蔽的房頂上張望媒抠。 院中可真熱鬧,春花似錦兢哭、人聲如沸领舰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冲秽。三九已至,卻和暖如春矩父,著一層夾襖步出監(jiān)牢的瞬間锉桑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工窍株, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留民轴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓球订,卻偏偏與公主長得像后裸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冒滩,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容