好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

spring.net 结合简单三层实例

spring.net 结合简单三层实例

spring.net 结合简单三层实例

最近在学习spring.net  接下来将实现一个与我们普通三层结合的实例!简单了解一下spring.net的运用;

该项目共分四层;接口层IClassLibrary  被BLL 及DAL层引用;层;

BLL不引用DAL 因为我们这用spring.net来加载;

BLL引用的spring.net所要的DLL配置文件在UI

我们首先来看一下接口层两个类的代码:

 using   System;
  using   System.Collections.Generic;
  using   System.Linq;
  using   System.Text;

  namespace   IClassLibrary
{
      public   interface   IBll
    {
          void   GetBllData();
    }
} 

 using   System;
  using   System.Collections.Generic;
  using   System.Linq;
  using   System.Text;

  namespace   IClassLibrary
{
      public   interface   IDal
    {
          void   GetDataStr();
    }
} 


接下来我们看一下DAL层的两个类的代码(这两个类都实例的接口IDal;主要是为了后面测试只要修改配置就可以实现实例化不同的类):

 using   System.Text;
  using   IClassLibrary;
  namespace   DAL
{
      public   class   DalClass:IDal
    {
          public   void   GetDataStr()
        {
            Console.WriteLine(  "  通过手动获得数据  "  );
        }
    }
} 

 using   IClassLibrary;
  namespace   DAL
{
      public   class   DalTwoClass:IDal
    {
          public   void   GetDataStr()
        {
            Console.WriteLine(  "  通过自动获得信息  "  );
        }
    }
} 

DAL这边有个地方必须要注意;因为我们DAL层没有让任务引用;所以我们要修改它生成后的路径;否则会报无法加载的错误;我们要把生成的路径改在我们UI层的BIN文件夹里;

接下来我们看一下BLL层的类代码:

 using   IClassLibrary;
  using   Spring.Context;
  using   Spring.Context.Support;
  using   Spring.Core.IO;
  using   Spring.Objects.Factory.Xml;
  using   Spring.Objects.Factory;
  namespace   BLL
{
      public   class   BllClass:IBll
    {
          private   IDal DB;
          public   BllClass()
        {
              //  string[] xmlFiles = new string[] { "file:  //  Config/Objects.xml" };
              //  IApplicationContext context = new XmlApplicationContext(xmlFiles);
              //  DB = context.GetObject("readerDal") as IDal; 
 

            IResource input  =  new  FileSystemResource( "  file://Config/Objects.xml  "  );
            IObjectFactory factory  =  new   XmlObjectFactory(input);
            DB  = (IDal)factory.GetObject( "  readerDals  "  );

            
        }

          public   void   GetBllData()
        {
            DB.GetDataStr();
        }
    }
} 


接下来我们要看一下配置文件里的内容Objects.xml:

 <?  xml version="1.0" encoding="utf-8"   ?> 
 <  objects   xmlns  ="http://www.springframework.net"   xmlns:xsi  ="http://www.w3.org/2001/XMLSchema-instance"   > 
   <  object   id  ="readerDals"   type  ="DAL.DalClass,DAL"  > 
   </  object  > 
 </  objects  > 

type=类库.类,类库

接下来我们看一下配置文件App.Config

 <?  xml version="1.0" encoding="utf-8"   ?> 
 <  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  > 
     <  context  > 
         <!--  Spring中 IOC容器 所使用的对象XML文件定义  --> 
       <  resource   uri  ="assembly://UI/UI.Config/Objects.xml"  /> 
     </  context  > 
   </  spring  > 

 </  configuration  > 


 

接下来我们看一下UI层的代码:

 using   BLL;
  namespace   UI
{
      class   Program
    {
          static   void  Main( string  [] args)
        {
              //  配置文件要放在哪里 
 
            BllClass bllCient  =  new   BllClass();
            bllCient.GetBllData();
            Console.ReadLine();
        }
    }
} 

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于spring.net 结合简单三层实例的详细内容...

  阅读:39次