Asp.net MVC中如何实现依赖注入(DI)(二)
昨天说了一下Castle与Autofac如何在MVC中的使用,今天再来简单说一下Spring.Net框架在MVC中如何依赖注入的。
官网:http://www.springframework.net/
项目结构图:
首先,我们要在项目中添加Spring.Net的类库引用,我们可以在Nuget中进行下载:
第二步,在web.config中配置,配置代码如下:
<!--spring.net配置--><configSections><sectionGroup name="spring"><section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc5" /></sectionGroup></configSections><spring><context><resource uri="file://~/Config/Controller.xml" /><resource uri="file://~/Config/Service.xml" /></context></spring><!--spring.net配置-->
View Code
第三步,新建Config文件夹,新建Controller.xml配置Controller中的依赖对象,新建Service.xml配置类库的注入对象。
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 name="base" type="SpringNetDemo.Controllers.PersonController,SpringNetDemo" singleton="false"><property name="PersonService" ref="PersonService"></property><property name="TestService" ref="TestService"></property></object><object name="test" type="SpringNetDemo.Controllers.TestController,SpringNetDemo" singleton="false"><property name="PersonService" ref="PersonService"></property></object> </objects>
View Code
Service.xml代码:
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"><object name="PersonService" type="SpringNetDemo.Service.PersonService, SpringNetDemo.Service" singleton="false" ></object><object name="TestService" type="SpringNetDemo.Service.TestService, SpringNetDemo.Service" singleton="false" ></object> </objects>
View Code
第四步,新建类库SpringNetDemo.Service,并新建业务逻辑类PersonService,TestService及实体类Person代码如下:
PersonService.cs代码:public class PersonService{public string Msg(Person model){return $"我的名字是:{model.Name},今年{model.Age}岁。";}}TestService.cs代码:public class TestService{public string Msg(Person model){return $"我叫:{model.Name},今年{model.Age}了。";}}Person.cs实体类代码:public class Person{public string Name { get; set; }public int Age { get; set; }}
View Code
第五步,修改全局文件Global.asax中MvcApplication继承自SpringMvcApplication
第六步,新建PersonController,代码如下:
public class PersonController : BaseController{public PersonService PersonService { get; set; }public TestService TestService { get; set; }// GET: Personpublic ActionResult Index(){Person person = new Person(){Name = "张珊",Age = 69};var result = PersonService.Msg(person);return Content(result+"--------"+ TestService.Msg(person));}}
View Code
运行结果如下:
转载于:https://www.cnblogs.com/MrLiu90/p/9883206.html
Asp.net MVC中如何实现依赖注入(DI)(二)相关推荐
- 通过源代码研究ASP.NET MVC中的Controller和View(二)
通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...
- ASP.NET Core中如影随形的”依赖注入”[上]: 从两个不同的ServiceProvider说起
我们一致在说 ASP.NET Core广泛地使用到了依赖注入,通过前面两个系列的介绍,相信读者朋友已经体会到了这一点.由于前面两章已经涵盖了依赖注入在管道构建过程中以及管道在处理请求过程的应用,但是内 ...
- 通过源代码研究ASP.NET MVC中的Controller和View(三)
通过源代码研究ASP.NET MVC中的Controller和View(一) 通过源代码研究ASP.NET MVC中的Controller和View(二) 第三篇来了,上一篇我已经把VirtualPa ...
- ASP.NET MVC中使用AJAX(XMLHttpRequest、Microsoft AJAX Library......)
AJAX的好处就是不会堵塞页面,可以提高用户体验,可以减少数据传输尺寸,提高应用程序的性能.目前,AJAX技术可以说是已经成为WEB开发的标准技术. AJAX技术是纯客户端技术,任何客户端框架(如:M ...
- [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点. 为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特 ...
- ASP.NET MVC中你必须知道的13个扩展点
ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...
- ASP.NET Core技术研究-探秘依赖注入框架
ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...
- [ASP.NET Core 3框架揭秘] 依赖注入:依赖注入模式
IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架之中以实现对流程的复用,并按照"好莱坞法则"实现应用程序的代码与框架之间的交互.我们可以采用若干设计模式 ...
- 如何在 ASP.NET MVC 中集成 AngularJS(3)
今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...
- 如何在 ASP.NET MVC 中集成 AngularJS
介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新 ...
最新文章
- linux install命令文件夹,详解Linux系统中的install命令的用法
- 在JavaScript中删除对象
- php zhegnze_php 正则表达式
- Splunk企业级运维智能大数据分析平台新手入门视频课程上线
- 从零开始学习python编程-Python3.5从零开始学 PDF 下载
- 4. ex 命令(1)
- 美男子第一次的JAVA博客
- 如何从Java官网下载 Java API 文档
- ThinkPad T14 Gen3拆机更换升级内存和固态硬盘
- Java加密、解密Word文档
- 进制怎么用计算机算,Win10计算器怎么算二进制,win10计算器二进制使用教程
- Android Backup功能之全面实战
- 人群行为分析算法调研
- 好像还挺好玩的GAN8——SRGAN实现图像的分辨率提升
- 基于asp.net006电话计费管理系统
- 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)
- “共轭”(conjugate)是什么意思?
- Command terminated by signal 11
- 分享8年开发经验,浅谈java程序员职业规划
- 漏洞漏洞-linux漏洞修复命令
热门文章
- Leetcode134.加油站
- Android LitePal
- 在idea中使用debug
- [Vue warn]: Error in render: “TypeError: Cannot read properties of undef
- vscode快捷键的修改
- 持续输出|我的 2019 年
- linux Flatpak 安装包,snap卸载
- Java 队列 Queue 使用说明
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_10idea集成maven插件...
- CodeForces 522D Closest Equals 树状数组