久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

淺析Spring.NET(一):Spring.NET及簡(jiǎn)單使用

 黃金屋1 2019-05-26

淺析Spring.NET

一,、Spring.NET 簡(jiǎn)單使用

最近用到了 Spring.NET ,不過(guò)在第一次使用的時(shí)候就遇到了一些問(wèn)題,,打算整理成系列博客,不斷的總結(jié)和分享,。

同時(shí)也非常感謝在學(xué)習(xí)過(guò)程中給予我非常多幫助的前輩們,,具體太多可能不能一一列舉,不過(guò)如果是看到前輩們的幫助后解決的問(wèn)題,,會(huì)在博客中掛上相應(yīng)文章的鏈接,。 Coding and Share!

1. 什么是 Spring.NET ?

Spring 框架本是 Java 平臺(tái)上一個(gè)應(yīng)用非常多的、開(kāi)源的框架,。雖然語(yǔ)言是固定的,,但是好的方法應(yīng)該是通用的,于是 Spring 框架 就被程序員從 Java 平臺(tái)搬遷到了 .NET 平臺(tái),。

通過(guò)Spring.NET,,我們可以用統(tǒng)一且透明的方式來(lái)配置應(yīng)用程序。Spring.NET 的重點(diǎn)是為中間層提供聲明式事務(wù)管理,,以及一個(gè)功能齊全的 ASP.NET 擴(kuò)展框架,。Spring.NET 是非侵入式的,代碼對(duì)框架本身不會(huì)產(chǎn)生任何依賴,。

Spring.NET 能夠提供很多方面的功能,,例如:控制反轉(zhuǎn)(英文縮寫(xiě)為IoC)、依賴注入(DI),、面向方面編程(AOP),、數(shù)據(jù)訪問(wèn)抽象, 以及 ASP.NET 集成等。

Spring.NET 核心:

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庫(kù)中,。

2.快速創(chuàng)建第一個(gè)使用 Spring.NET 的程序

? 本次開(kāi)發(fā)環(huán)境: VS 2017 本次開(kāi)發(fā)項(xiàng)目:.netframework控制臺(tái)項(xiàng)目

(1). 使用 Nuget 安裝 Spring.core

使用 Spring.NET 需要 Spring.Core 庫(kù)的支持,,同時(shí)在 Nuget 中安裝 Spring.Core 包,會(huì)在項(xiàng)目上自動(dòng)引入相關(guān)的引用,。

(2).創(chuàng)建相關(guān)文件,。

本次創(chuàng)建兩個(gè)文件:IUserInfo 接口、UserInfo 實(shí)體類,。使用 Spring 反射創(chuàng)建 UserInfo 類,,使用 IUserInfo 接口調(diào)用反射創(chuàng)建的類。

//IUserInfo接口
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo
{
    public interface IUserInfo
    {
        string ShowMss();
    }
}

//UserInfo實(shí)體類 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo
{
    //實(shí)現(xiàn) IUserInfo接口
    public class UserInfo : IUserInfo
    {
        public string ShowMss()
        {
            return "Hello Spring.NET";
        }
    }
}

重要的是在配置節(jié)里面的配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--sectionGroup節(jié)點(diǎn)一定要在緊跟著configuration下面第一個(gè)添加-->
    <sectionGroup name="spring">
      <!--跟下面Spring.Net節(jié)點(diǎn)配置是一一對(duì)應(yīng)關(guān)系-->
      <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/>
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
    </sectionGroup>
  </configSections>

  <!--Spring.Net節(jié)點(diǎn)配置-->
  <spring>
    <!--容器配置-->
    <context>
      <resource uri="config://spring/objects"/>
    </context>
    <objects>
      <!--objects里面放容器的所有節(jié)點(diǎn)-->
      <description>An example that demonstrates simple Ioc features.</description><!--描述-->
      <!--name 必須要唯一的,,type = 類的全名稱,,所在的程序集-->
      <object name="UserInfo" type="Demo.UserInfo,Demo"></object><!--咱們剛才創(chuàng)建的UserInfo實(shí)體類-->
    </objects>
  </spring>
    
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
</configuration>

獲取并執(zhí)行:

//Program 程序入口類
//引用 : Spring.Context 和 Spring.Context.Support 兩個(gè)命名空間
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spring.Context;
using Spring.Context.Support;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            IApplicationContext ctx = ContextRegistry.GetContext();
            IUserInfo userInfo = (IUserInfo)ctx.GetObject("UserInfo");
            Console.WriteLine(userInfo.ShowMsg());
            Console.Read();
        }
    }
}

輸出結(jié)果:

輸出結(jié)果

注意事項(xiàng):

  1. 必須安裝 Spring.core 包,否則缺少環(huán)境支持,。
  2. 需要正確 配置 配置文件:
    1. sectionGroup節(jié)點(diǎn)一定要在緊跟著configuration下面第一個(gè)添加.
    2. objects 節(jié)點(diǎn)中的 <object></object>節(jié)點(diǎn),,name="value" value 值一定要唯一,type ="value1 , value2"value1 是需要反射創(chuàng)建出來(lái)的類的全名稱,,value2該類所在的程序集,。
    3. 反射創(chuàng)建,。

打完收工,后續(xù)再補(bǔ)充,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多