Spring.Net控制反转IoC入门使用

时间:2021-05-19

Spring.Net包括控制反转(IoC) 和面向切面(AOP),这篇文章主要说下IoC方面的入门。

一、首先建立一个MVC项目名称叫SpringDemo,然后用NuGet下载spring(我用的是Spring.Net NHibernate 4 support)

二、类设计,在Models文件夹下面建立类,主要IUserInfo,UserInfo,Order 三个类代码如下:

public interface IUserInfo { string ShowMeg(); }public class UserInfo : IUserInfo { public string UserName { get; set; } public Order OrderBy { get; set; } public string ShowMeg() { return "姓名:" + UserName + "订单号:" + OrderBy.OrderNo; } }public class Order { public string OrderNo { get; set; } }

三、进入关键的一步:修改配置文件。在web.config里直接修改 如下:

<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 配置开始 ******************--> <spring> <context> <!--容器配置,配置当前容器对象放在上面位置:当前是在现在的配置文件中--> <resource uri="config://spring/objects" /><!--当前--> </context> <objects xmlns="http://"> <!--这里存放容器所有节点--> <description>An example that demonstrates simple Ioc features</description> <!--构造函数注入--> <object name="NewUserInfo" type="SpringDemo.Models.NewUserInfo,SpringDemo"> <constructor-arg index="0" value="张学友"/> <constructor-arg index="1" ref="Order"/> </object> <!--复杂依赖注入--> <object name="Order" type="SpringDemo.Models.Order,SpringDemo"> <property name="OrderNO" value="20170909"/> </object> </objects>

八、修改web.config 指定objects.xml为解析依赖

<resource uri="~/Config/objects.xml" /><!--指定文档-->

九、在Home控制器下建立Action NewUserInfo 代码如下:

public ActionResult NewUserInfo() { IApplicationContext ctx = ContextRegistry.GetContext(); IUserInfo lister = (IUserInfo)ctx.GetObject("NewUserInfo"); ViewBag.msg = lister.ShowMeg(); return View(); }

十、前台添加显示 @ViewBag.msg 运行结果如下:

总结:IoC给我们带来了很多的方便,当我们觉得使用简单工厂不好的时候,可以用IoC来代替,而且大部分都支持AOP。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章