Spring.Net在ASP.NET Mvc里使用的一个小例子
就贴个小例子,就不注意格式了。
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>
Spring.Net在ASP.NET Mvc里使用的一个小例子的更多相关文章
- 对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识
对Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架的个人认识 初次接触Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架,查阅了相 ...
- Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架
Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架 初次接触Spring.Net+NHibenate+Asp.Net Mvc+Easyui框架,查阅了相关资料,了解了框 ...
- Spring.Net+Nhibernate+Asp.Net Mvc 框架
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的环境 使用这套框架不是很长时间.但也基本应用了几个项目中了.在此和大家分享一下我是怎样一步一步搭建此框架 ...
- ASP.NET没有魔法——ASP.NET MVC使用Area开发一个管理模块
之前的My Blog提供了列表的展示和文章显示功能,但是所有数据仍然只能通过数据库录入,为了完成最初的角色“作者”的用例,本章将介绍如何使用“Area”实现My Blog的管理功能. 根据功能分离代码 ...
- 在ASP.NET MVC里对Web Page网页进行权限控制
我们在ASP.NET MVC开发时,有时候还是得设计ASP.NET的Web Page网页(.aspx和.aspx.cs),来实现一些ASP.NET MVC无法实现的功能,如此篇<Visual S ...
- [转]开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo(转)
热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- ASP.NET MVC环境下实现一个网站多个网站模板的方法
asp.net mvc下实现多个网站模板的方法,让ASP.NET一个网站有多套网站模板,不用的场景下使用不用的mvc 模版. 比如有默认,红,蓝,绿几种网站模板,客户可以根据自己喜好选择自己喜欢的网 ...
随机推荐
- Codeforces Round #361 (Div. 2) E. Mike and Geometry Problem 【逆元求组合数 && 离散化】
任意门:http://codeforces.com/contest/689/problem/E E. Mike and Geometry Problem time limit per test 3 s ...
- js控件设置只读属性和不可用属性
介绍js实现只读的几种方法: 设置控件只读的话,我们要先清楚哪些没有readOlny这个属性 我知道的checkbox和RadioButton没有readOlny这个属性,我上一篇已经介绍了如何设置c ...
- C# 程序启动其他进程程序
1 启动一个独立进程,需要用到的命名空间是:using System.Diagnostics; 进程类是 Process ,进程的相关参数信息类是 ProcessStartInfo 2 等待启 ...
- js箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头 x =>x*x 相当于: function(x) { ...
- 终于好像懂motan了!!!
我依稀记得,刚到公司的时候,锋哥让我学习Maven,spring,spring MVC,mybatis,RPC:motan,Xdiamond,Jenkins,redis和Kafka.快3个月了,目前只 ...
- 解决model属性与系统重名
.h .m + (NSDictionary *)replacedKeyFromPropertyName { return @{ @"detailId" : @"id&qu ...
- c#总结最近的几项重要代码
java的代码就不说了,毕竟不是我的主业. 1.c#数据库连接池Hikari. (1)动态加载各类数据库驱动 (2)支持简单配置文件 (3)支持按照名称多数据库调用 (4)使用简洁 单数据库使用: H ...
- 基于layer封装的异步加载分部视图弹出层
背景:之前一直用的artdialog,但是样式不是很好看,后来偶然看到layer,觉得不错,但是对于.net mvc来说,不能像artdialog一样弹出分部视图是很难受的.所以下面的方法就解决了. ...
- 编写可维护的JavaScript---事件处理
在JavaScript应用中事件处理是非常重要的,所有的JavaScript都是通过事件绑定到UI上的. 1. 典型用法 当事件触发的时候,事件对象event会最为回调参数传入到事件处理程序中.eve ...
- phpstudy启动时Apache启动不了
打开cmd,输入:D:\phpStudy\PHPTutorial\Apache\bin\httpd.exe -t 回车,即显示错误信息 说是我们的有一个文件目录不存在或者不可读取, 出现这个一般有两种 ...