欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

程序员文章站 2022-07-02 17:44:10
Spring.Net在Asp.Net MVC5 中IOC功能的使用及注意事项 ......

    众所周知,spring在java中是很常见的框架,spring.net虽然体积比较大,但是功能相对齐全,本文介绍在vs2017 .net framework 4.6.1环境下,如何快速使用spring.net的ioc功能。话不多说,开撸demo!

1 准备工作

1.1新建解决方案文件夹,新建bll、ibll类库项目:

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

1.2 在ibll层中添加测试接口itest.cs

    public interface itest
    {
        string getname();
        int getage();
    }

1.3 在bll层中添加具体的实现类testbll并继承1.2中接口:

public  class testbll: itest
{
        public string getname()
        {
            return "test";
        }

        public int getage()
        {
            return 12;
        }
}

1.4 添加webtest 项目,并添加相应的测试controller:

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

 

2 引入spring.net所需nuget包

2.1 在webtest中添加nuget包:

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

2.2 在web.config文件中配置spring.net节点:

<configuration>
  <configsections>
    <sectiongroup name="spring">
      <section name="context" type="spring.context.support.contexthandler,spring.core" />
    </sectiongroup>
  </configsections>
  <!--spring.net节点配置-->
  <spring>
    <!--容器配置-->
    <context>
      <resource uri="file://~/config/controller.xml" />
      <resource uri="file://~/config/service.xml" />
    </context>
  </spring>

2.3 在webtest目录下新建config文件夹并新建controller.xml和service.xml文件,配置如下:

 2.3.1 controller.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
  <description>an  example that demonstrates simple ioc features.</description>
  <!--object的name可以自定义,property中的属性name不能自定义-->
  <object  type="webtest.controllers.springdonettestcontroller,webtest" singleton="false">
    <property name="itest" ref="testservice"></property>
  </object>
</objects>

2.3.2 service.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects>
  <object name="testservice" type="bll.testbll,bll">
  </object>
</objects>

这两个文件在web.config文件中已经被添加,记得controller文件要放在上面。

2.4 让spring.net接管mvcapplication:

在global文件中做如下调整:

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

3 测试

3.1 controller文件中添加如下代码,记得添加相应的index视图:

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

 

public class springdonettestcontroller : controller
    {

        public itest itest { get; set; }
        // get: springdonettest
        public actionresult index()
        {
           var name =  itest.getname();
            return view(name);
        }
    }

3.2 打断点测试

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

 

4 可能出现的情况

4.1  未能加载文件或程序集“system.web.http, version=5.0.0.0, culture=neutral, publickeytoken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。

接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

解决方法:nuget安装或更新microsoft.aspnet.webapi,

      安装命令:install-package microsoft.aspnet.webapi

                   更新命令:update-package microsoft.aspnet.webapi

 4.2  could not load type from string value 'bll.testbll,bll'.

解决方法:引用bll以及ibll

 

5 后记

  本篇demo在github可以下载,下载地址为:https://github.com/wangbank/springdonetforvs2017

   这篇文章是关于spring.net中ioc功能的简单实用,以后会逐渐更新其aop功能以及其他ioc框架,譬如unity、autofac等等,希望大家可以支持。