摘要:对于数据访问当然会涉及到事务管理,对于 NHibernate 来说,通常我们使用下面的方式进行。// 创建新公司var session = Assyria.DataAccess.SessionFactory.GetCurrentSession();using (NHibernate.ITransaction transaction = session.BeginTransaction()){ session.Save(company); transaction.Commit();}会话的 BeginTransaction 用来启动事务管理,Commit 方法用来显式提交事务。在 S...
阅读全文
摘要:完整地演示了结合 NHibernate 与 Spring.NET 的项目实践。
阅读全文
摘要:本文介绍了在 Spring.NET 中使用监控和日志帮助开发的配置问题。
阅读全文
摘要:配置使用 Spring.NET 的网站,介绍了两种定义对象的方式,直接使用 web.config 和 独立的配置文件。
阅读全文
摘要:Spring.NET 是一个非常优秀的框架,对 DI 和 AOP 提供了强大而又方便的支持。NHibernate 是优秀的 ORM 框架,在开发中,我们希望能够集成使用这两个框架,在 Spring.NET 1.3.2 中对于当前的 NHibernate 3.2 提供了直接的支持。
本系列将逐步介绍配置文件涉及的各个部分,直至完成系统的整个框架。
本文介绍软件的下载和开发所需的文件。
阅读全文
摘要:第一,增加相应程序集的引用。在测试项目中增加对于 NUnit 和 Spring.Testing.NUnit 程序集的引用。第二,在项目中增加一个测试类,这个测试类必须从 Spring.Testing.NUnit.AbstractDependencyInjectionSpringContextTests 派生,这个基类提供了 Spring 的支持。第三,需要重载 ConfigLocations 属性,提供配置信息的来源。基类会负责从中获取 Spring 的配置信息。第四,定义需要注入的属性。注意,属性的名字必须匹配配置文件中的 id 或者 name 的值。第五,测试。使用注入的属性测试示例代码下
阅读全文
摘要:在集成 Spring.NET 1.3.1 和 NHibernate 3.1 的时候遇到了一点麻烦。在 NHibernate 3.1 中对于 Spring.NET 提供了一个名为 NHibernate.ByteCode.Spring 的延迟加载支持。可惜它使用了 Spring 1.3.0 的版本,如果只使用这个程序集配合 Spring.NET 1.3.1 ,当使用延迟加载的时候,总是报找不到 Spring.AOP 1.3.0 的异常。在 Spring.NET 1.3.1 中倒是直接提供了与 NHibernate 支持的文件,可是只有 NHibernate 3.0 的支持文件 Spring.Dat
阅读全文
摘要:在配置完成之后,有的同学得到这样的一个异常。检查后,发现可以这样解决。注意原配置文件中的使用了 name , 而不是 type, 如果这样配置就会出现这个错误。在 Spring.NET 的文档中指出了这个问题。 <object type="Handler1.ashx"> <property name="Message" value="Hello, world."> <value>This text is injected via Spring</value> </property&
阅读全文
摘要:配置 ashx 映射Spring.NET 中可以很方便地进行各种处理程序的映射,对于ashx 来说,支持的映射处理类为:Spring.Web.Support.DefaultHandlerFactory, 也定义在程序集 Spring.Web 中。可以在 web.config 的配置中,增加对于 *.ashx 的映射配置。<httpHandlers> <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/
阅读全文
摘要:AOP 术语通知(Advice): 通知描述了切面要完成的任务,同时还描述了何时执行这个任务。连接点(Joinpoint): 程序中应用通知的地方称为连接点,这个点可以是方法被调用时,异常抛出时,甚至访问属性的时候。切入点(Pointcut): 切入点定义通知切入的一个或者多个连接点。切面(Aspect): 切面就是通知和切入点的结合。通知和切入点共同定义了切面的全部内容:功能、时机、位置。引入(Introduction): 允许我们想现有类中增加属性和方法.目标(Target): 被通知的对象代理(Porxy): 向目标对象增加通知之后,创建的对象,由这个对象来访问实际的目标对象。织入(We
阅读全文
摘要:Spring团队认为测试是企业软件开发中不可或缺的一部分。依赖注入的主要好处之一,是你的代码的运行环境或其他子系统, 不太可能有任何隐藏的依赖关系。这使得单元测试中,所测试的对象可以被简单实例化,并设置在单元测试代码中的依赖。您可以使用mock对象(联同其他许多有价值的测试技术)来测试你的代码隔离。如果你遵循了 Spring 的架构建议,就会发现清晰的层次和代码组件将大大方便单元测试。例如,您将能够测试服务层对象的存根或DAO接口,可以在没有访问任何持久性数据的同时,运行单元测试。真正的单元测试运行起来通常都非常迅速,因为没有运行时基础设施的设置,即数据库,ORM工具,或其他什么。因此,作为你
阅读全文
摘要:首先,在 <configSections> 中增加了一个配置节的定义 databaseSettings,定义如下:<section name="databaseSettings" type="System.Configuration.NameValueSectionHandler"/>然后,在配置文件中定义了关于数据访问的一些配置参数,以备以后使用,每个配置参数通过 key 设置名字,value 是相应的值。1 <databaseSettings>2 <add key="db.datasource&qu
阅读全文
摘要:Spring.NET 1.3.1 中提供了一个使用 AdoTemplate 的完整示例,包括使用泛型和使用非泛型技术进行数据访问,这个示例位于下载的压缩包中 \Spring.NET-1.3.1\Spring.NET\examples\Spring\Spring.DataQuickStart。Spring.NET 的下载地址:http://www.springframework.net/download.html。示例中的数据来源于微软的示例数据库 Northwind,这个数据库可以从微软的网站下载,下载地址:http://www.microsoft.com/downloads/en/detai
阅读全文
摘要:Spring 对 ADO.NET 提供了强大的支持,主要涉及到下面的几个类型。这次,在引用 Spring.Core 的基础上,还要引用 Spring.Data,这个程序集也位于 Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release 中。几个常用的类型IDbProviderIDbProvider 定义了数据访问提供器的基础,在 Spring 中提供了许多的数据访问 Provider。通常我们在配置文件中配置当前使用的 Provider。 1 <?xml version="1.0" encoding="utf-8&quo
阅读全文
摘要:作为一个容器,当然首先要存在一个容器对象了。Spring.NET 中的容器定义在程序集 Spring.Core 中,直接添加这个程序集的引用就可以开始使用了。这个程序集位于 Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release 中。一、编程方式的容器在 Spring.NET 中,对于通过编程方式使用容器的环境,提供了 Spring.Context.Support.StaticApplicationContext,我们可以直接创建这个容器,并加入一些配置。在下面的例子中,我们定义了基类 Person,然后定义了 Person 的派生类 Student,p
阅读全文
摘要:一. Spring.NET下载地址:http://www.springframework.net/download.html目前的版本是 1.3.1 ,已经可以支持 .NET 4.0。二. 一些不错的学习资料《Spring 揭秘》这本书不是讲 Spring.NET, 而是讲 Java 版的 Spring,不过核心原理是相同的,所以拿来学习也没有问题。作者是王福强,这本书在互动出版网的销售地址。编辑的推荐是:让Spring之父Rod Johnson拍案叫绝的原创经典.首次全方位深度剖析Spring框架实现原理及其设计理念..由国内资深架构师亲自撰写、在国内开发者社区内引起广泛关注和如潮好评生动通
阅读全文