[转]Spring.Net介绍

转自:http://www.cnblogs.com/cilence/archive/2013/02/21/2920478.html

Spring.NET下载地址:http://www.springframework.net/

各大主流.Net的IOC框架性能测试比较 http://www.cnblogs.com/liping13599168/archive/2011/07/17/2108734.html

Castle IOC容器与Spring.NET配置之比较 http://terrylee.cnblogs.com/archive/2006/04/25/384149.html

1.1 概述

  在Java社区中Spring经历的长时间的考验,已经是一套很成熟稳定的框架。而Spring.Net 的前身是 Java版的Spring。Spring.Net是以Java版的Spring框架为基础,将Spring(Java版)的概念和编程思想移植到.Net平台上来。

  Spring.Net 是一个应用程序框架,它的目的是帮助软件开发人员创建企业级的.Net应用程序。它提供了很多方面的功能,比如依赖注入,面向切面编程(AOP),数据访问抽象以及ASP.Net扩展等等的功能。

  Spring.Net 框架是一套轻量级的面向企业级应用的开源框架。Spring.Net 不仅是开源的,而且Spring.Net 还提供了众多的功能,软件过程中几乎80%工作都能通过它完成。虽然Spring.Net 功能众多,但是使用Spring.Net后对于我们的应用程序消耗来说却是微不足道的,它是非侵入式的(几乎所有的功能,可以通过配置文件来管理,而开发人员可以使用Spring.Net 中一个功能模块或者同时使用多个功能模块。在使用Spring.Net的功能模块中,可以只通过配置就能完成,并且不影响原有的开发方式),正是由于这种非侵入式,因此Spring.Net 框架才被称为面向企业级应用轻量级功能完善的开源框架。

1.2 之前我们如何软件开发

  在企业级应用中一般都是很复杂的,不像我们以前在学校开发的XX管理系统那样。企业级应用中我们通常都使用 三层结构(多层结构)来将应用程序划分为若干个功能层。如数据访问层,业务逻辑层,表示层等等。例如:通常表示层需要调用业务逻辑层的方法,业务逻辑层需要调用数据访问层的方法,数据访问层需要访问数据库。不管应用程序如何构建,最终都是相互协作(各层之间的调用)的对象。这些对象一起组成了完整的应用程序(我们开发的软件)。所以我们一直说,软件中对象与对象之间具有相互依赖性。当软件复杂到一定程度的时候(企业级应用就很复杂了),如果软件架构的不好,各层之间依赖性太强,这个时候当需求发生变化的时候,我们就无法让我们的软件去适应这些变化,最终导致我们的软件流产。

  微软.Net平台为构建软件提供了丰富的功能。从基元类型到基础类库,以及到功能完善的WinForm和Asp.Net 框架。但是可能是由于之前没有开源的原因,造成.Net社区一直没有发展壮大起来。而.Net平台本身并没有提供任何方式来管理业务逻辑并将他们以适当的方式组织起来的解决方案,以前只能是架构师或者开发人员去创建应用程序。可是在我们国家的确是人才有限,好的架构师不是每个团队都有。

  诚然,目前有很多设计模式可用于业务领域的设计,我们使用这些设计模式可以将类或者对象比较好的组合起来构建我们的软件。如:工厂,抽象工厂,建造者,装饰者,以及代理模式等等,已经被现今的软件开发行业广泛接受和采用(这可能就是这些设计模式很早就被定型为模式的原因,在90年代Gof就出版了《设计模式:可复用面向对象软件的基础》一书),这些模式都很好,他们大部分都是定型的已命名的编程方式,这些模式一般都会说,在什么场合下使用,能解决什么问题。

1.3 Spring.Net 所解决的问题

  Spring.Net 是一套业务逻辑层的框架,它在我们的软件开发中起着承上启下的作用(上有表示层,下有数据访问层)。在Spring.Net中大量使用了设计模式,如果我们在软件开发中合理规范的使用Spring.Net 框架,开发人员无需达到架构师的水平就能够比较好驾驭我们的应用程序,并且提高开发效率。

  在Spring.Net的IOC(控制反转:稍后会和大家详细谈到)容器所解决的,正是如何在企业级应用中如何有效,合适的将类和对象以及服务组合成应用程序的问题。IOC容器通过正统(正统的意思是,这些方式都是经过业界多年考验,已经定型了为设计模式的最佳编程方式)的将分散的组件或者类以及对象组合成完整的应用程序。Spring.Net 将他们有效的整合起来。Spring.Net大大减少了各个层次之间的耦合,分离了关注点(我们以前关注数据访问方式,页面逻辑等等)让开发人员有更多的精力只关注于业务逻辑。它为我们创建出具有扩展性,维护性的软件提供了基础。

1.4  背景

  在2004年初,Martin Fowler曾经问他网站的读者:当我们谈到控制反转时,“问题是,它们反转的是哪方面的控制?”。随后Fowler建议为控制反转重新命名(或者起码给它一个更具自我描述性的名字),所以依赖注入(Dependency Injection)这一术语才得以使用。Fowler在论文中也讨论了控制反转和依赖注入原理背后的一些概念。如果您需要了解正宗的IoC和DI理论,可以参考这篇论文:http://martinfowler.com/articles/injection.html

1.5  控制反转 VS 依赖注入

  控制反转(IOC) 和 依赖注入(DI) ,其实它们是同一个概念的不同角度的描述,由于控制反转概念比较模糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年大师级别人物Martin Flower又给出了一个新名字:”依赖注入”,相对控制反转而言,“依赖注入”又 确描述了被注入对象依赖IOC容器配置以来对象。

以下会有专门的章节帮我们来理解什么是 控制反转 和 依赖注入。

1.6  Spring.Net 整体结构以及模块

          (图1  Spring.Net框架的整体结构:该图出自Spring.Net 官方网站)

  Spring.NET框架包括很多功能,这些功能被很好的组织进一系列模块当中,如下图所示。Spring.NET 1.0包括完整的IoC容器和AOP类库。1.1版将加入Web、ORM和数据模块。Spring.NET的下载包中并不包含与其它类库(如NHibernate,TIBCO EMS,Anthem,和IIOP.NET)集成的模块,如果需要您可以单独下载。上图为Spring.NET的各个核心模块。灰色阴影部分在1.0版中已经可用了,其它模块会在未来版本中陆续发布。目前可以从Spring.Net的官方网站上单独下载这些新的模块。

(1)     Spring.Core:

作为整个框架的基础,实现了依赖注入的功能。Spring.NET的大部分模块都要依赖或扩展该模块。Spring.Core的基础是IObjectFactory接口,该接口用一个简单而优雅的方式实现了工厂模式,使我们可以无需自行编写singleton类型和众多的服务定位器,并允许将对象配置及其依赖关系与具体的程序逻辑解耦。该模块中的IApplicationContext接口是IObjectFactory的扩展,增加了诸多企业级功能,包括使用资源文件进行文本本地化、事件传播和资源装载等等。

(2)     Spring.AOP:

为业务对象提供面向方面编程(AOP)的支持。AOP完善了IoC容器的功能,为创建企业应用和使用声明式服务奠定了坚实的基础。

(3)     Spring.Web:

对ASP.NET进行了一系列功能扩展,包括对ASP.NET页面进行依赖注入、双向数据绑定、在ASP.NET 1.1中使用Master page、以及增强的本地化功能支持等。

(4)     Spring.Services:

允许将任意的“普通”对象(意为没有继承任何指定基类型的对象)发布为企业服务(COM+)或远程对象。通过依赖注入和特性元数据覆盖等功能,该模块可使.NET的Web服务获得极大的灵活性。同时也支持Windows后台服务。

(5)     Spring.Data:

定义了一个抽象的数据访问层,可以跨越各种数据访问技术(从ADO.NET到各种ORM)进行数据访问。该模块包含一个ADO.NET的抽象层,减少了使用传统ADO.NET进行编码和事务管理时的工作量。

(6)     Spring.ORM:

为时下流行的ORM类库( 如:Nhibernate, Ibatis.Net等)提供了一个整合层,其中包含声明式事务管理等诸多功能。

时间: 2024-10-06 11:04:29

[转]Spring.Net介绍的相关文章

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会.希望大家能够多多指正.  2.Spring简单介绍 上图是有关Spring的整个架构图,从图中我们可以看出,Spring主要包括AOP.数据访问,WEB访问等几大块内容. Spring是一个基于JAVA的轻量级J2EE的应用框架. 那么Spring能干什么呢?目前我们看到市面上有很多的框架,比如Struts2+Spring.Spring+Servlet.Spring+i

Spring基础介绍

Spring属于轻量级还是重量级框架? 这需针对使用Spring的功能而言,比如我们常使用其核心服务整合SSH,这样则为轻量级. 如果使用其大部分服务则可以理解为重量级. 普通JAVA项目环境下预加载Spring  — applicationContext.xml AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("*.xml"); ApplicationContext cxt=new ClassPa

Spring框架介绍

Spring框架介绍---本文内容主要来源:http://www.cnblogs.com/jingmoxukong/p/4506493.html Spring当前框架有20个jar包,大致可以分为6大模块: Core Container AOP and Instrumentation Messaging Data Access/Integration Web Test Spring框架提供了非常丰富的功能,因此整个架构也很庞大. 在我们实际的应用开发中,并不一定要使用所有的功能,而是可以根据需要

Spring Boot 学习笔记一(Spring Boot 介绍)

一.Spring Boot 介绍 Spring Boot 是由Pivotal团队提供的一种全新的微服务框架,其设计目的是用来简化Spring应用的初始化搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板话的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 二.Spring Boot的特点 创建独立的Spring应用程序. 嵌入的Tomcat,无需部署WAR文件.

Spring Security 介绍与Demo

一.Spring Security 介绍 Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块的默认技术选型.我们仅需引入spring-boot-stater-security模块,进行少量的配置,即可实现强大的安全管理功能. 重要类: WebSecurityConfigurerAdapter:定义Security策略. AuthenticationManagerBuilder:定义认证策略 二.Demo 使用 IDEA 通过 Spring I

Spring Boot 介绍

Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 spring boot 连接Mysql spring boot配置druid连接池连接mysql spring boot集成mybatis(1) spring boot集成mybatis(2) – 使用pagehelper实现分页 spring boot集成mybatis(3) – mybatis ge

Spring Security 介绍

Spring Security介绍 开源 提供企业级的安全认证和授权 Spring安全拦截器 认证管理器 认证模式 Basic HTTP 1.0中使用的认证方法,使用用户名和密码Base64编码的方式 浏览器弹出对话框,用户输入用户名和密码,加入头部 无状态 安全性不足 Digest 解决安全性问题 浏览器对用户名和密码请求方法,URL等进行MD5运算,发送到服务器 服务器获取到用户名密码,请求方法,URL等MD5运算,查看是否相等 安全性问题依然存在 X.509 访问决策管理器 运行身份管理器

(一)spring boot介绍

spring boot 介绍 spring boot 发展 spring boot是伴随spring 4.0 诞生的,提供一种快速使用spring的方式,只需要少量的配置就可以快速运行起来. webfux spring 5.0 spring boot 特点 为基于spring的开发提供更快速的入门体验 创建可以独立运行spring应用 直接嵌入Tomcat或Jetty服务器,不需要打包成war文件 提供推荐的基础POM文件(starter)来简化Apache Maven配置 尽可能的根据项目依赖

[转帖]微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务

微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务 http://skaka.me/blog/2016/08/03/springcloud2/ AUG 3RD, 2016 10:09 PM | COMMENTS 之前介绍过微服务的概念与Finagle框架, 这个系列介绍Spring Cloud. Spring Cloud还是一个相对较新的框架, 今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比我之前用过的Du

(转)spring 框架介绍

转自:http://www.cnblogs.com/wawlian/archive/2012/11/17/2775435.html 1.Spring MVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到