zoukankan      html  css  js  c++  java
  • DI spring.net简单使用

    IOC或DI  spring.net简单使用

    一.spring.net是什么?

     Spring 框架本是 Java 平台上一个应用非常多的、开源的框架。虽然语言是固定的,但是好的方法应该是通用的,于是 Spring 框架 就被程序员从 Java 平台搬迁到了 .NET 平台。

    二.spring.net的作用:

     spring框架作用是控制反转及依赖注入;

    三.spring.net的Demo:

    1.引用spring.net程序集:

    nuget或者找到spring.net的程序集即可

    2.创建帮助类:

     public class SpringHelper
        {
            #region Spring容器上下文 +IApplicationContext SpringContext
            /// <summary>
            /// Spring容器上下文
            /// </summary>
            private static IApplicationContext SpringContext
            {
                get
                {
                    return ContextRegistry.GetContext();
                }
            }
            #endregion
    
            #region 获取配置文件配置的对象 +T GetObject<T>(string objName) where T : class
            /// <summary>
            /// 获取配置文件配置的对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="objName"></param>
            /// <returns></returns>
            public static T GetObject<T>(string objName) where T : class
            {
                return (T)SpringContext.GetObject(objName);
            }
            #endregion
        }

    3.配置:

    为了不让web.config文件不是很大,于是把他们拆分;

    在ui层项目中新建一个文件夹:Config,然后在他里面创建几个xml文件,xml就是spring.net的配置,如下图:

    web.config中配置:

    在<configuration>节点下配置如下图:

      <configSections>
        <sectionGroup name="spring">
          <!--配置解析Spring块的对象-->
          <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
          <!--配置解析Spring存放对象的容器集合-->
          <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>
        </sectionGroup>
      </configSections>
      <!--Spring.Net节点配置-->
      <spring>
        <context>
          <!--容器配置-->
          <!--<resource uri="config://spring/objects"/>-->
          <!--xml文件方式,更改属性,复制到输出目录:始终复制-->
          <resource uri="~/Config/dal.xml"/>
          <resource uri="~/Config/service.xml"/>
          <resource uri="~/Config/controllers.xml"/>
        </context>
      </spring>

    xml配置如下:(属性注入的方式)
    controllers.xml配置:

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net">
      <object type="ZLP.MVC.Controllers.HomeController, ZLP.MVC.Controllers" singleton="false" >
        <!--<property name="UserBLL" ref="UserBLL" />-->
      </object>
    </objects>

    service.xml配置:

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net">
      <object name="UserBLL" type="ZLP.BLL.UserBLL, ZLP.BLL" singleton="false">
        <!--<property name="UserDAL" ref="UserDAL" />-->
      </object>
    </objects>

    dal.xml配置:

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net">
      <object name="UserDAL" type="ZLP.DAL.UserDAL, ZLP.DAL" singleton="false"></object>
    </objects>

    2.获取对象:

     IUserBLL UserBLL = SpringHelper.GetObject<IUserBLL>("UserBLL");


    四.完整测试Demo:(vs2017开发的)

     https://download.csdn.net/download/zhang1096646030/11064414

  • 相关阅读:
    【算法】二分图的判定
    【模板】并查集 两种路径压缩写法(类模板和函数模板)
    【模板】堆的结构
    新疆大学OJ(ACM) 1099: 数列有序!
    新疆大学OJ(ACM) 1047: string 字符串排序
    新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
    新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选
    新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘
    【算法】第二类斯特林数Stirling
    【复习资料】编译原理中:短语,直接短语,句柄
  • 原文地址:https://www.cnblogs.com/zlp520/p/10605551.html
Copyright © 2011-2022 走看看