废话不多说,如果在看本文之前,你还不知道spring.net是什么,还不知道什么是控制反转、IOC容器、依赖注入、面向切面编程那么请你先去了解这些概念,再来看本文!本系列的文章将会以先贴代码,然后分析代码的方式讲解Spring.Net的一些简单的应用!
1、IObjectFactory接口
IObjectFactory是初始化、配置及管理对象的实际容器,它是所有容器的父接口.IObjectFactory本质上是一个注册了各种对象及其依赖项的高级工厂。通过IObjectFactory接口,可以读取容器内的对象定义并访问它们所代表的对象。如果只需要使用IOjbectFactory接口的功能,可以用代码创建其实现类的实例,然后读取XML对象定义中的内容。
(1)、如何与IObjectFactory接口进行交互
新建控制台应用程序,工程目录如下:
第一步:请确保你的测试控制台控制已经引入了Spring.Core程序集、Common.Logging程序集
Spring.Core程序集:Spring.Core程序集是Spring.NET控制反转(IoC,也叫做依赖注入)功能的基础程序集,如果不了解控制反转和依赖注入,请参考控制反转和依赖注入模式
Common.Logging程序集:apache下的一款日志接口组件,该接口提供了一组功能,通过这组功能能完成日志记录功能,它本事不具备强大的日志功能,只具备一些控制台日志功能,但是通过这个组件,可以完美的适配其他的日志组件,如:log4net等,通过配置文件的方式,本文不打算用其他日志组件的功能,而是打算用common.logging自带的控制台日志功能。
第二步:上面的工作完成之后,下面开始编写App.config的代码,如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--日志接口配置--> <configSections> <sectionGroup name="common"> <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> </sectionGroup> </configSections> <common> <logging> <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging"> <arg key="showLogName" value="true" /> <arg key="showDataTime" value="true" /> <arg key="level" value="DEBUG" /> <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" /> </factoryAdapter> </logging> </common> <!--日志接口配置--> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
因为Spring.Core用的是Common.Logging作的日志接口组件,所以必须在App.config中对其进行配置,该组件的说明请参考Common.Logging源码解析一(该随笔只是对Common.Logging的源码进行分析,如果你不知道Common.Logging的具体用处,请百度),配置完之后,通过Spring.Net进行的部分操作会记录到控制台中。
第三步:编写spring配置文件
<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" > <object id="cat" type="Spring.Cat, Spring"/> <object id="dog" type="Spring.Dog, Spring" singleton="false"/> </objects>