Spring.Net 初探之牛刀小试
又是一个周末,感受着外面30°的高温,果断宅在家里,闲来无事,就研究了一下spring .net 框架, 在这里不得不说 vs2013确实是一个强大的开发工具(起码对于.net开发来说是这样的),哈哈 废话不多说了开始展示一下我的成果吧.
1、 项目采用多层架构 IRepository/Repository/Service/Web层,而spring.net主要安装在service层,这样做的目的就是使注入和web层分开,使代码逻辑更加清晰,而在web层只需根据service层的类进行静态调用即可。项目架构如图所示:

在此之前需要在webconfig中配置spring.xml目录,代码如下所示:
<!--Spring.Net节点详细配置-->
<spring>
<context>
<!--读取嵌入在程序集中的配置文件-->
<!--<resource uri="file://~/Config/Spring.xml"/>-->
<!--读取嵌入在程序集中的配置文件 将Spring.xml的属性设置为【嵌入的资源】-->
<resource uri="assembly://Spring.Net.Service/Spring.Net.Service.Config/Spring.xml"/>
</context>
</spring>
下面就以BookInfo类为例贴出代码
1、IBookInfo接口类定义代码,定义函数
namespace Spring.Net.IRepository
{
public interface IBookInfo
{
string GetBook();
}
}
2、BookInfo实现类代码
namespace Spring.Net.Repository
{
public class BookInfo : IBookInfo
{
public string GetBook()
{
return "Hello World!";
}
}
}
3、BookService逻辑处理类代码,在该类中用到了依赖注入技术,将BookInfo注入到Service中,需在Spring.xml中进行配置
namespace Spring.Net.Service
{
public class BookInfoService
{
static IBookInfo Book { get; set; } public static string GetBook()
{
return Book.GetBook();
}
}
}
4、spring.xml配置代码
<objects xmlns="http://www.springframework.net">
<!--放容器里面的所有的节点 type属性的规范:程序集名称在内的类型全名,程序集名-->
<!--<object type="Spring.Net.Service.UserRegInfoService,Spring.Net.Service" singleton="true" >
<property name="UserRegInfoRepository" ref="UserRegInfoRepository" />
</object>-->
<object type="Spring.Net.Service.BookInfoService,Spring.Net.Service" singleton="true" >
<property name="Book" ref="Book" />
</object>
<!--<object type="Spring.Net.Service.LoginService,Spring.Net.Service" singleton="true" >
<property name="Login" ref="Login" />
</object>-->
<!--配置Service-->
<!--<object name="UserRegInfoRepository" type="Spring.Net.Repository.UserRegInfoRepository,Spring.Net.Repository" singleton="true" >
</object>-->
<object name="Book" type="Spring.Net.Repository.BookInfo,Spring.Net.Repository" singleton="true" >
</object>
<!--<object name="Login" type="Spring.Net.Repository.LoginRepository,Spring.Net.Repository" singleton="true" >
</object>-->
</objects>
5、web层调用
public ActionResult SpringTest()
{
//ViewBag.Msg = UserRegInfoService.GetAllData();
//ViewBag.Msg = LoginService.LoginInfo();
ViewBag.Msg = BookInfoService.GetBook();
return View();
}
6、效果图如下所示:

在spring.xml中 有几点需要注意:
1、当object属性中的singleton为true时,标识已单例模式访问service类,故函数要写为静态的,如BookService代码所示,否则运行不正常。
2、object和property的name属性值 必须和service类代码里约定的一致,例如:在BookService里约定 对象为static IBookInfo Book { get; set; },那么在<property name="Book" ref="Book" />就必须保持一致,否则运行不正常。
3、spring.xml文件【生成操作属性】要设置为嵌入的资源,否则,配置文件报错。
以上就是本人对spring.net的浅析,如有需更正的地方,请各位多多指点,期待与热爱技术的你共同进步。
Spring.Net 初探之牛刀小试的更多相关文章
- Spring.Net 初探
Spring.Net 初探之牛刀小试 又是一个周末,感受着外面30°的高温,果断宅在家里,闲来无事,就研究了一下spring .net 框架, 在这里不得不说 vs2013确实是一个强大的开发工具 ...
- Spring WebSocket初探2 (Spring WebSocket入门教程)<转>
See more: Spring WebSocket reference整个例子属于WiseMenuFrameWork的一部分,可以将整个项目Clone下来,如果朋友们有需求,我可以整理一个独立的de ...
- 响应式Spring Cloud初探
响应式Spring Cloud初探 分类:工程原文链接:The Road to Reactive Spring Cloud作者: JOSH LONG译者: helloworldtang日期:JUNE ...
- intelij idea+springMVC+spring+mybatis 初探(持续更新)
intelij idea+springMVC+spring+mybatis 初探(持续更新) intellij 创建java web项目(maven管理的SSH) http://blog.csdn.n ...
- spring boot初探
又被领导鄙视了,说让先把程序跑起来,再去研究深层次的东西.. 我又一次没有学会走就要开始跑了..说干就干 eclipse mars下载 新建maven project 加依赖 <dependen ...
- spring MVC 初探 (HelloWorld)
1.使用spring MVC 需要导入相关jar包 2.web.xml 启用spring MVC <servlet> <servlet-name>spring3mvc</ ...
- Spring Boot初探之log4j2配置
一.背景 下面讲在使用Spring Boot搭建微服务框架时如何配置log4j2,通过log4j2输出系统中日志信息. 二.添加log4j2的配置文件 在项目的src/main/rescources目 ...
- Spring Boot初探之数据库访问
一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot访问MySQL数据库. 二.搭建基础环境 ...
- Spring Boot初探之restful服务发布
一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot发布restful服务接口. 二.搭建基础 ...
随机推荐
- 摘要: Linux下which、whereis、locate、find命令的区别
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which ...
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- 2016huasacm暑假集训训练四 数论_B
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/G 题意:求有多少x(1<=x<=n),使得gcd(x,n)>=m ...
- 谢欣伦 - OpenDev原创教程 - 客户端套接字类CxClientSocket
这是一个精练的客户端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxClientSocket的使用如下(以某个叫做CSo ...
- PHP 生成PDF
一个项目中需要用到网页生成PDF,就是将整个网页生成一个PDF文件, 以前也用过HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML + css 生成的效果惨不忍睹, 百度了一下,发现有个 ...
- Java实现Oracle数据库备份
今天将很早就实现的一个Oracle数据库备份功能粘贴出来,这个功能是在大学做阶段设计时写的: import java.io.File; import java.io.IOException; /** ...
- htmlentities,html_entity_decode,addslashes
PHP htmlspecialchars_decode() 函数 PHP htmlspecialchars() 函数 PHP html_entity_decode() 函数 PHP中混淆的三组函数总结 ...
- nodejs如何储存一个GBK编码的文件
思路:utf-8 -> decode(to buffer) -> convert to gbk(buffer also) -> write buffer to file. var f ...
- 史上最全的java随机数生成算法分享(转)
这篇文章主要介绍了史上最全的java随机数生成算法,我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法 String password = RandomUtil.generat ...
- Java_Map_Map详解
本博客为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/8867065 1.Map概述 Map<K,V> Map集 ...