配置说明
下面介绍是基于ASP.NET MVC项目来介绍的(其实这些是无关紧要的,只不过借助一个项目
来实现学习配置,使用Spring.Net;建立控制台项目也是可以的,多啰嗦了一句哈)。
(1)Spring.Net包下载(已经友好的不行了,最少的积分即可下载)
(2)项目中引入Spring.Net开发包,配置App.config。
- 下载开发包
- Spring.Net包下载
- Spring.Net中文参考学习API文档下载
- 配置如下:
在App.config文件中(ASP.NET MVC项目是到Web.config文件中的configuration节点下)配置如下:
<configuration>
<configSections><!--添加配置块-->
<sectionGroup name="spring"><!--声明spring节点-->
<section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
</sectionGroup>
<spring>
<context>
<!--Spring.Net对象容器的配置(下面这句话表示:容器里的对象,在当前配置文件(Web.config)的spring节点下的objects节点中配置对象)-->
<resource uri="config://spring/objects"></resource>
<!--uri:【第一种:加载文件方式加载配置文件】参数说明-回到当前bin目录下找对应的xml文件-->
<!--<resource uri="file://cache.xml"></resource>-->
<!--uri:【第二种:程序集方式加载配置文件(我在项目采用这种方式)】参数说明-会到:程序集名称为【HEPFrame.Web】的,项目文件命名空间为:【HEPFrame.Web】下的查找加载cachexml文件-->
<!--<resource uri="assembly://HEPFrame.Web/HEPFrame.Web/cache.xml"></resource>-->
</context>
<!--objects:配置的容器里面的对象-->
<objects xmlns="http://www.springframework.net">
<description>An example that demonstrates simple IoC features.</description>
</objects>
</spring>
</configSections>
</configuration>
下面是cache.xml文件配置信息:
我是在ASP.NET MVC项目中用Memcached+Spring.Net实现缓存登录系统,下面只不过是写的一些缓存接口和类而已;最重要的是替代了 工厂模式,实现了【单机缓存】和【Memcached分布式缓存】之间的切换。
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.net
http://www.springframework.net/xsd/spring-objects.xsd">
<!--配置CacheWriter缓存容器,两种缓存配置之间的切换-->
<!--第一种:启用Memcached分布式缓存-->
<!--<object name="CacheWriter" type="HEPFrame.Cache.MemcacheWriter,HEPFrame.Cache" singleton="false" >
--><!--默认情况下singleton是true--><!--
</object>-->
<!--第二种:启用单机缓存;说明一下:type后面的参数是【类的全命名空间,类所在的程序集名称】-->
<object name="CacheWriter" type="HEPFrame.Cache.HttpRuntimeCacheWriter,HEPFrame.Cache" singleton="false" >
</object>
<!--CacheHelper类做属性注入-->
<object name="CacheHelper" type="HEPFrame.Cache.CacheHelper,HEPFrame.Cache" singleton="false">
<property name="CacheHelper" ref="CacheWriter"></property><!--特别注意:被引用的属性,一定要先注入-->
</object>
</objects>
- 犯过的错误记录:
错误集:
(1)Error creating context 'spring.root': Configuration Section 'spring/
objects'does not exist
错误原因:
由于我在搭建MVC的项目时,采用分层搭建,在工具类中写的 缓存处理类库引用了Spring.Net
开发包;而在引用的地方(即网站项目Web下没有引用Spring.Net开发包,只是配置了节点
信息);也就是 调用类库的项目中 没有引用Spring.Net开发包。
(2)Error creating context 'spring.root': 未能找到文件“C:XXXXXX路径下的
cache.xml”文件(注意:尤其是自定义把xml文件归类到文件夹下,会出现加载不到该文件)
错误原因:
项目在读取cache.xml文件时,从bin目录下读取;因此需要点击cache.xml文件【右键】
->【属性】在【始终复制】栏中选择【始终复制】,【生成操作】栏中选择【嵌入资源】即可。
下面是我搭建的项目分层:
下面是创建实例的代码: