欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring.Net控制反轉(zhuǎn)IoC入門使用

 更新時(shí)間:2017年06月05日 10:12:21   作者:Gress  
這篇文章主要為大家詳細(xì)介紹了Spring.Net控制反轉(zhuǎn)IoC入門使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Spring.Net包括控制反轉(zhuǎn)(IoC) 和面向切面(AOP),這篇文章主要說(shuō)下IoC方面的入門。

一、首先建立一個(gè)MVC項(xiàng)目名稱叫SpringDemo,然后用NuGet下載spring(我用的是Spring.Net NHibernate 4 support)

二、類設(shè)計(jì),在Models文件夾下面建立類,主要IUserInfo,UserInfo,Order 三個(gè)類代碼如下:

public interface IUserInfo
  {
    string ShowMeg();
  }
public class UserInfo : IUserInfo
  {
    public string UserName { get; set; }
    public Order OrderBy { get; set; }
    public string ShowMeg()
    {
      return "姓名:" + UserName + "訂單號(hào):" + OrderBy.OrderNo;
    }
  }
public class Order
  {
    public string OrderNo { get; set; }
  }

三、進(jìn)入關(guān)鍵的一步:修改配置文件。在web.config里直接修改 如下:

<sectionGroup name="spring">
   <!--解析spring塊的對(duì)象-->
   <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/>
   <!--配置解析spring存放對(duì)象的容器集合-->
   <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
  </sectionGroup>
  
 </configSections>
<!--****************** Spring 配置開始 ******************-->
 <spring>
  <context>
   <!--容器配置,配置當(dāng)前容器對(duì)象放在上面位置:當(dāng)前是在現(xiàn)在的配置文件中-->
   <resource uri="config://spring/objects" /><!--當(dāng)前-->
  </context>
  <objects xmlns="http://www.springframework.net">
   <!--這里存放容器所有節(jié)點(diǎn)-->
   <description>An example that demonstrates simple Ioc features</description>
   <!-- name 必須唯一 可以隨意命名,一般為類型名稱,type=類的全部名稱,所在程序集,目的是為了讓容器輕松的反射創(chuàng)建對(duì)象-->
   <object name="UserInfo" type="SpringDemo.Models.UserInfo,SpringDemo">
    <property name="UserName" value="老王" />
    <!--ref 指向下面的屬相注入-->
    <property name="OrderBy" ref="Order" />
   </object>
   <object name="Order" type="SpringDemo.Models.Order,SpringDemo">
    <property name="OrderNo" value="20170808" />
   </object>
  </objects>
 </spring>
 <!--****************** Spring 配置結(jié)束 ******************-->

四、代碼測(cè)試,新建控制器,代碼如下:

public ActionResult Index()
    {
      IApplicationContext ctx = ContextRegistry.GetContext();
      IUserInfo lister = (IUserInfo)ctx.GetObject("UserInfo");
      ViewBag.msg = lister.ShowMeg();
      return View();
    }

五、前臺(tái)添加顯示 @ViewBag.msg 運(yùn)行結(jié)果如下:

六、前已經(jīng)大功告成,但如果想把配置文件單獨(dú)出來(lái)該怎么弄呢,為了達(dá)到測(cè)試效果新建一個(gè)類NewUserInfo 代碼如下:

public class NewUserInfo : IUserInfo
  {
    public NewUserInfo(string name, Order order)
    {
      this.UserName = name;
      this.OrderBy = order;
    }

    public string UserName { get; set; }
    public Order OrderBy { get; set; }

    public string ShowMeg()
    {
      return "姓名:" + UserName + "訂單號(hào):" + OrderBy.OrderNo;
    }
  }

七、新建文件夾Config下建立objects.xml 屬性設(shè)置生成到目錄 內(nèi)容如下:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
 <!--這里存放容器所有節(jié)點(diǎn)-->
 <description>An example that demonstrates simple Ioc features</description>
 
 <!--構(gòu)造函數(shù)注入-->
 <object name="NewUserInfo" type="SpringDemo.Models.NewUserInfo,SpringDemo">
  <constructor-arg index="0" value="張學(xué)友"/>
  <constructor-arg index="1" ref="Order"/>
 </object>
 <!--復(fù)雜依賴注入-->
 <object name="Order" type="SpringDemo.Models.Order,SpringDemo">
  <property name="OrderNO" value="20170909"/>
 </object> 
 
</objects>


八、修改web.config 指定objects.xml為解析依賴

<resource uri="~/Config/objects.xml" /><!--指定文檔-->

九、在Home控制器下建立Action NewUserInfo 代碼如下:

public ActionResult NewUserInfo()
    {
      IApplicationContext ctx = ContextRegistry.GetContext();
      IUserInfo lister = (IUserInfo)ctx.GetObject("NewUserInfo");
      ViewBag.msg = lister.ShowMeg();
      return View();
    }


十、前臺(tái)添加顯示 @ViewBag.msg 運(yùn)行結(jié)果如下:

總結(jié):IoC給我們帶來(lái)了很多的方便,當(dāng)我們覺得使用簡(jiǎn)單工廠不好的時(shí)候,可以用IoC來(lái)代替,而且大部分都支持AOP。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java超詳細(xì)講解ArrayList與順序表的用法

    Java超詳細(xì)講解ArrayList與順序表的用法

    ArrayList 類是一個(gè)可以動(dòng)態(tài)修改的數(shù)組,與普通數(shù)組的區(qū)別就是它是沒有固定大小的限制,我們可以添加或刪除元素。ArrayList 繼承了 AbstractList ,并實(shí)現(xiàn)了 List 接口,順序表是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-06-06
  • Java鏈表的天然遞歸結(jié)構(gòu)性質(zhì)圖文與實(shí)例分析

    Java鏈表的天然遞歸結(jié)構(gòu)性質(zhì)圖文與實(shí)例分析

    這篇文章主要介紹了Java鏈表的天然遞歸結(jié)構(gòu)性質(zhì),結(jié)合圖文與實(shí)例形式分析了java鏈表中遞歸操作的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • MyBatis中的自定義TypeHandler詳解

    MyBatis中的自定義TypeHandler詳解

    這篇文章主要介紹了MyBatis中的自定義TypeHandler詳解,定義的?typeHandler?泛型為?String,顯然我們要把數(shù)據(jù)庫(kù)的數(shù)據(jù)類型轉(zhuǎn)化為?String?型,然后實(shí)現(xiàn)設(shè)置參數(shù)和獲取結(jié)果集的方法,需要的朋友可以參考下
    2023-07-07
  • java前后端使用ajax數(shù)據(jù)交互問(wèn)題(簡(jiǎn)單demo)

    java前后端使用ajax數(shù)據(jù)交互問(wèn)題(簡(jiǎn)單demo)

    這篇文章主要介紹了java前后端使用ajax數(shù)據(jù)交互問(wèn)題(簡(jiǎn)單demo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-06-06
  • C++實(shí)現(xiàn)掃雷游戲示例講解

    C++實(shí)現(xiàn)掃雷游戲示例講解

    這篇文章主要介紹了C++實(shí)現(xiàn)掃雷游戲示例講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java組件commons-fileupload實(shí)現(xiàn)文件上傳

    java組件commons-fileupload實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了java借助commons-fileupload組件實(shí)現(xiàn)文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Spark?SQL配置及使用教程

    Spark?SQL配置及使用教程

    SparkSQL是spark的一個(gè)模塊,主入口是SparkSession,將SQL查詢與Spark程序無(wú)縫混合,這篇文章主要介紹了Spark?SQL配置及使用,需要的朋友可以參考下
    2021-12-12
  • java 實(shí)現(xiàn)切割文件和合并文件的功能

    java 實(shí)現(xiàn)切割文件和合并文件的功能

    這篇文章主要介紹了java 實(shí)現(xiàn)切割文件和合并文件的功能的相關(guān)資料,這里實(shí)現(xiàn)文件的切割的實(shí)現(xiàn)代碼和文件合并的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2017-07-07
  • org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案

    org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案

    這篇文章主要給大家介紹了關(guān)于org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Druid簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查方式

    Druid簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查方式

    這篇文章主要介紹了Druid簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論