Spring.Net入门学习

一、建立类库项目SpringNetDemo.DAO,同时建立两个文件

1、IBLL.cs

namespace SpringNetDemo.DAO
{
    public interface IPersonDao
    {
        void Save();
    }
}

2、BLL.cs

namespace SpringNetDemo.DAO
{
    public class PersonDao:IPersonDao
    {
        public void Save()
        {
            Console.WriteLine("save person....");
        }
    }
}

二、建立控制台应用程序,命名SpringNetDemo.Test,并引用SpringNetDemo.DAO

    通常我们操作对象的方法如下

    class Program
    {
        static void Main(string[] args)
        {

            IPersonDao pd = new PersonDao();
            pd.Save();

        }
    }

    此时调用者必须要依赖于IPersonDao ,PersonDao,如果要隐藏PersonDao类的实现,我们可以使用工厂模式来实现,那么我们再建立一个

类库SpringNetDemo.DaoFactory并引用SpringNetDemo.DAO,并且建立工厂数据访问类DataAccess.cs

namespace SpringNetDemo.DaoFactory
{
    public static class DataAccess
    {
        public static IPersonDao CreatePersonDao()
        {
            return new PersonDao();
        }
    }

}

   此时我们要操作对象可以用如下方法,调用者只要知道IPersonDao ,工厂就可以了,而不需要知道PersonDao

    class Program
    {
        static void Main(string[] args)
        {

            IPersonDao pd1 = DaoFactory.DataAccess.CreatePersonDao();
            pd.Save();

        }
    }

  到了这里我们可能会思考,如果我们有一个框架可以帮我们来管理PersonDao对象就好了,继续。。。

SpringNetDemo.Test

1、添加对Spring.Core.dll,Common.Logging.dll引用

2、新建App.config配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>

  <spring>
    <context>
      <!--<resource uri="config://spring/objects" />-->
      <resource uri="objects.xml"></resource>
    </context>
    <!--<objects xmlns="http://www.springframework.net/">
      <description>一个简单的控制反转例子</description>
      <object id="PersonDao" type="SpringNetDemo.DAO.PersonDao,SpringNetDemo.DAO" />
    </objects>-->

  </spring>

</configuration>

3建立一个objects.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net/">
  <description>一个简单的控制反转例子</description>


  <object id="PersonDao" type="SpringNetDemo.DAO.PersonDao,SpringNetDemo.DAO" />


</objects>

配置完成,下面通过程序调用

    class Program
    {
        static void Main(string[] args)
        {

            IApplicationContext ctx = ContextRegistry.GetContext();
            IPersonDao dao = ctx.GetObject("PersonDao") as IPersonDao;
            if (dao != null)
            {
                dao.Save();
                Console.WriteLine("我是IoC方法");
            }

        }

     }

完成。。。。

spring.net+ibatis.net

源代码:IBatisNet+SpringNet

原文地址:https://www.cnblogs.com/yidianfeng/p/2261895.html