刚看了一点Spring .NET, 从第一个例子MovieFinder说起(2)
2012-06-09 22:53
211 查看
作者接下来定义了另外一种ImovieFinder接口的实现
<object name="AnotherMovieFinder"
type="Spring.Examples.MovieFinder.ColonDelimitedMovieFinder, Spring.Examples.MovieFinder"><constructor-arg index="0" value="movies.txt"/>
</object>
ColonDelimitedMovieFinder的没有默认构造函数,需要提供一个参数,constructor-arg标签就是指明参数用的
然后替换MyMovieLister 的注入,其实就是得到ImovieFinder接口另外一个实现,直接在config文件中改
<object name="MyMovieLister"
type="Spring.Examples.MovieFinder.MovieLister, Spring.Examples.MovieFinder">
<!-- lets use the colon delimited implementation instead -->
<property name="movieFinder" ref="AnotherMovieFinder"/>
</object>
<object name="MyMovieFinder"
type="Spring.Examples.MovieFinder.SimpleMovieFinder, Spring.Examples.MovieFinder"/>
</object>
<object name="AnotherMovieFinder"
type="Spring.Examples.MovieFinder.ColonDelimitedMovieFinder, Spring.Examples.MovieFinder">
<constructor-arg index="0" value="movies.txt"/></object>
这样就可以得到 ImovieFinder接口的ColonDelimitedMovieFinder实现。
不用重新编译!这就是Spring IOC的好处?
的确:如果用代码写的话要这样:
开始用 SimpleMovieFinder实现ImovieFinder接口
SimpleMovieFinder simple = new SimpleMovieFinder ();
MovieLister movieLister = new movieLister (simple );
如果要改用 ColonDelimitedMovieFinder得话要改代码:
ColonDelimitedMovieFinder colon= new ColonDelimitedMovieFinder ("movie.txt");
MovieLister movieLister = new movieLister (colon );
通过改config文件 ,就不用改代码了!这就是Ioc的好处啊!!???
<object name="AnotherMovieFinder"
type="Spring.Examples.MovieFinder.ColonDelimitedMovieFinder, Spring.Examples.MovieFinder"><constructor-arg index="0" value="movies.txt"/>
</object>
ColonDelimitedMovieFinder的没有默认构造函数,需要提供一个参数,constructor-arg标签就是指明参数用的
然后替换MyMovieLister 的注入,其实就是得到ImovieFinder接口另外一个实现,直接在config文件中改
<object name="MyMovieLister"
type="Spring.Examples.MovieFinder.MovieLister, Spring.Examples.MovieFinder">
<!-- lets use the colon delimited implementation instead -->
<property name="movieFinder" ref="AnotherMovieFinder"/>
</object>
<object name="MyMovieFinder"
type="Spring.Examples.MovieFinder.SimpleMovieFinder, Spring.Examples.MovieFinder"/>
</object>
<object name="AnotherMovieFinder"
type="Spring.Examples.MovieFinder.ColonDelimitedMovieFinder, Spring.Examples.MovieFinder">
<constructor-arg index="0" value="movies.txt"/></object>
这样就可以得到 ImovieFinder接口的ColonDelimitedMovieFinder实现。
不用重新编译!这就是Spring IOC的好处?
的确:如果用代码写的话要这样:
开始用 SimpleMovieFinder实现ImovieFinder接口
SimpleMovieFinder simple = new SimpleMovieFinder ();
MovieLister movieLister = new movieLister (simple );
如果要改用 ColonDelimitedMovieFinder得话要改代码:
ColonDelimitedMovieFinder colon= new ColonDelimitedMovieFinder ("movie.txt");
MovieLister movieLister = new movieLister (colon );
通过改config文件 ,就不用改代码了!这就是Ioc的好处啊!!???
相关文章推荐
- 刚看了一点Spring .NET, 从第一个例子MovieFinder说起
- 学习Spring.NET - 第一个例子
- Spring Boot的第一个HelloWorld例子
- Spring.NET学习实践(2) ---修改下我们的小例子
- asp.net通过反射技术实现Ajax(3)--第一个简单的例子
- spring boot入门 -- 介绍和第一个例子
- Spring_Mvc第一个小例子(配置文件形式)
- 第一个Spring例子
- Spring第一个例子的补充
- 第一个Spring例子
- Spring in Action 书的第一个例子GreetingService...疑问
- Spring.Net---1、IOC第一个实例
- 第一个Net+Mysql的例子,比想象的简单很多
- 第一个Lucene.Net 例子
- SpringBoot学习-(1)第一个小例子
- 关于刘冬大侠Spring.NET系列学习笔记3的一点勘正
- 学习Spring.NET 例子
- 菜鸟学习Spring——第一个例子
- 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
- springAOP的第一个例子