就贴个小例子,就不注意格式了。
1.下载dll
NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget
在vs的NuGet里搜索spring.web.mvc,它会自动下载SpringNet的引用包。
安装完成之后你的项目会多三个引用,项目目录../packages文件夹下面也会多出这三个文件夹里面是SpringNet的文件。
2.写代码例子
很简单的例子。定义一个接口,一个对于接口的实现类。
namespace MvcApplication2.Models { public interface ITestDao { string TestShow(); string TestSayHello(); } }
namespace MvcApplication2.Models { public class TestDao : ITestDao { public string TestShow() { return "这里是测试信息展示!"; } public string TestSayHello() { return "hello world!"; } } }
第一种最基础的方式。直接在代码里实现IOC容器的创建和注册还有调用。
StaticApplicationContext context = new StaticApplicationContext(); context.RegisterPrototype("itestDao", typeof(TestDao), null);//itestDao是对TestDao实例注册的一个名字。 ITestDao itestDao = context.GetObject("itestDao") as TestDao;//这里调用注册的那个名字 string result = itestDao.TestShow();
第二种附带一点点配置文件。
配置文件在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" /> </context> <objects xmlns="http://www.springframework.net"> <object id="itestDao" type="MvcApplication2.Models.TestDao" /> </objects> </spring>
IApplicationContext context = ContextRegistry.GetContext(); ITestDao itestDao = context.GetObject("itestDao") as TestDao; string result = itestDao.TestShow();
第三种跟mvc的整合。
打开mvc里的Global.asax文件
然后将MvcApplication继承的HttpApplication替换成SpringMvcApplication,SpringMvcApplication是Spring.Web.Mvc.dll里面的类。
修改完之后在控制器里加上一个属性testDao属性
然后配置文件里加一个object配置。
<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" /> </context> <objects xmlns="http://www.springframework.net"> <object id="itestDao" type="MvcApplication2.Models.TestDao" /> <object type="MvcApplication2.Controllers.HomeController" > <property name="testDao" ref="itestDao" /> </object> </objects> </spring>
ref表示控制器HomeController里testDao属性实例化的是itestDao里的内容。
然后所有的准备就好了。运行程序会根据配置文件里的配置自动实例化HomeController里的testDao
补充内容:
如果需要配置的映射文件太多。可以把objects部分移出web.config文件。
自己现在在根目录重新建立一个springobject.xml文件,这里需要将xml文件的属性设置成嵌入的资源。然后将objects中的内容复制进去。
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <object id="itestDao" type="MvcApplication2.Models.TestDao" /> <object type="MvcApplication2.Controllers.HomeController" singleton="false"> <property name="testDao" ref="itestDao" /> </object> </objects>
resource里uri的内容变成file://~/springobject.xml,
如果你的配置文件假设在一个object文件夹里,那路径对应的就是file://~/object/springobject.xml,
Web.config配置内容现在就变成了这样。
<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="file://~/springobject.xml" /> </context> </spring>