1.开始。
2.新建一个控制台,我们新建一个SpringNetTest类。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpringNetDemo { public class SpringNetTest { public void SayHello() { Console.WriteLine("SayHello"); } } }
2.首先我们用正常的方式在mian函数入口实例化这个SpringNetTest对象
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpringNetDemo { class Program { static void Main(string[] args) { SpringNetTest springNet = new SpringNetTest(); springNet.SayHello(); Console.ReadKey(); } } }
4.很明显这个地方是直接New的,进行了强耦合,在实际的项目中这样写,未来需求变动是不利于修改的。面向对象思想中,我们要面向接口编程。接下来我提取一个接口,SpringNetTest继承这个接口。写一个简化版本的例子
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpringNetDemo { interface IObjectNetTest { void SayHello(); } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpringNetDemo { public class SpringNetTest: IObjectNetTest { public void SayHello() { Console.WriteLine("SayHello"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SpringNetDemo { class Program { static void Main(string[] args) { IObjectNetTest springNet = new SpringNetTest(); springNet.SayHello(); Console.ReadKey(); } } }
这样的话,我们程序只要是依赖于IObjectNetTest而不依赖 SpringNetTest了,以后如果 不用SpringNetTest,但是只要是继承于IObjectNetTest对象都可以改。但是这个地方还是要修改 new SpringNetTest(),我们这个地方还是强耦合。那这个时候我们SpringNet就闪亮登场了。
5.首先我们下载好了SpringNet的程序集,这是全部的 控制台我们只要前面4个基础的就好了
6.修改配置文件AppConfig,和main方法代码,注入的方式好多种,我下面只列举了一种,具体的可以看文档
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--Spring--> <configSections> <!--spring容器对象的创建--> <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> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <spring> <!-- Spring.Net对象容器的配置 --> <context> <!--要注入容器的对象的创建路径--> <resource uri ="config://spring/objects" /> <!--<resource uri="file://~Config/common.xml" />--> </context> <objects xmlns= "http://www.springframework.net" > <!--创建的对象--> <!--name:是定义启的名字,type:逗号前面是创建对象的命名空间,逗号后面是创建对象所在的程序集--> <object name = "IobjectNetTest" type="SpringNetDemo.SpringNetTest,SpringNetDemo"> </object> </objects> </spring> <!--Spring--> </configuration>
using Spring.Context;