zoukankan      html  css  js  c++  java
  • Spring.Net框架一:Spring.Net简介

    一、Spring.Net简介

    Spring.NET为建立企业级应用提供了一套轻量级的解决方案。
    通过Spring.NET,我们可以用统一且透明的方式来配置应用程序。Spring.NET的重点是为中间层提供声明式事务管理,以及一个功能齐全的ASP.NET扩展框架。Spring.NET是非侵入式的,代码对框架本身不会产生任何依赖。
    Spring.Core库是框架的基础,提供依赖注入功能。Spring.NET中大多数类库依赖或扩展了Spring.Core的功能。IObjectFactory接口提供了一个简单而优雅的工厂模式,移除了对单例和一些服务定位stub的必要。允许你将真正的程序逻辑与配置解耦。作为对IObjectFactory的扩展,IApplicationContext接口也在Spring.Core中,Spring DOTNET是一个关注于.NET企业应用开发的应用程序框架。它能够提供很多方面的功能,例如控制反转(Inversion of Control,英文缩写为IOC)、依赖注入(Dependency Injection,英文缩写为DI)、面向方面编程(AOP)、数据访问抽象,以及ASP.NET集成等。基于Java的spring框架的核心概念和价值已被应用到.NET。Spring.NET 1.0包含一个完全功能的依赖注入容器和AOP库。后续的发布将包含对Spring.NET、Remoting和数据访问的支持。

    二、依赖注入

    依赖注入即控制反转
    控制反转(Inversion of Control,英文缩写为IOC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。控制反转一般分为两种类型:依赖注入(Dependency Injection,简称DI)和依赖查找。依赖注入应用比较广泛。
    其本质就是反射工厂。
    在运行期间,由外部容器动态地将依赖对象注入到容器中。

    Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:AInterface a = new AInterfaceImp(); 这样一来,耦合关系就产生了,如:

     1 class A
     2 {
     3         AInterface a;
     4         public A()
     5         { }
     6         //方法
     7         public void Method()
     8         { 
     9            //实例化对象
    10             a = new AInterfaceImp();
    11         }
    12 }

    在上面的代码中,Class A与AInterfaceImp就是依赖关系,如果想使用AInterface的另外一个实现类就需要更改代码了。当然,我们可以建立一个Factory来根据条件生成想要的AInterface的具体实现,代码如下:

     1     public class InterfaceImpFactory
     2     {
     3         public AInterface Create(Object obj)
     4         {
     5             if (obj.Equals(condA))
     6             {
     7                 return new AInterfaceImpA();
     8             }
     9             if (obj.Equals(condB))
    10             {
    11                 return new AInterfaceImpB();
    12             }
    13             else
    14             {
    15                 return new AInterfaceImp();
    16             }
    17         }
    18     }

    上面的代码中,表面上看来在一定程度上缓解了以上问题,但实质上这种代码耦合并没有改变。通过IoC模式可以彻底解决这种耦合,它把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。

    三、DLL文件
    Spring.Core.dll:包含Spring.NET框架基本的核心工具类,Spring.NET其他组件都要使用这里的类,是其他组件的基本核心。
    Spring.NET其他组件都要使用到这里的类,是其他组件的基本核心。
    Spring.Aop.dll:Spring.NET的AOP框架。
    Spring.Web.dll:提供了对Web的支持。
    Spring.Web.Mvc3.dll:Spring.NET自己的Web框架。
    Common.Logging.dll:Spring.Net日志功能。

  • 相关阅读:
    Ansible 和 Playbook 暂存
    nginx 和keepalived的使用
    关于 群晖 docker 百度云盘下载的使用心得
    文件夹共享
    转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
    Maven学习笔记一
    转:Maven常用命令
    转:MySQL下载安装、配置与使用(win7x64)
    转:SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)
    转:java 解析excel,带合并单元的excel
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/7372471.html
Copyright © 2011-2022 走看看