企业开发框架NHibernate和Spring.Net简介-4
2008-09-05 09:45
471 查看
企业开发框架NHibernate和Spring.Net简介-4
2008-03-24 14:00
2008-03-24 14:00
(2)获得IApplicationContext应用。代码如下所示: #001 using System; #002 using System.Configuration; #003 using Spring.Context; #004 ... #005 public static void Main () #006 { IApplicationContext ctx = ContextRegistry.GetContext();} #007 ... 如上所述,using System.Configuratoin和using Spring.Context两条using语句被加到了MovieApp类文件中。其中,System.Configuration命名空间可以让应用程序存取保存在配置文件中的Spring.NET的IoC容器的定义;Spring.Context命名空间可以让应用程序存取IApplicationContext类,这个类是应用程序存取Spring.NET所提供的功能的主要方法。 方法main获得一个IApplicationContext的实现,它的配置信息已经被写在应用程序配置文件内名为<objects/>的节中。 (3)第一个对象的定义。到目前为止,在应用程序配置文件中还没有对象定义,所以下面定义一个对象。MovieLister实例的XML定义如下所示。 #001 ... #002 <objects> #003 <object name="MyMovieLister" #004 type="Spring.Examples.MovieFinder.MovieLister, Spring.Examples.MovieFinder"> #005 </object> #006 </object> #007 ... #003行:MyMovieLister是该对象的唯一标识符,使用这个标识符,这个对象的实例就能够被如下所示的代码中的IApplicationContext引用所获取。 #001 ... #002 public static void Main () #003 { IApplicationContext ctx = ContextRegistry.GetContext(); #004 MovieLister lister = (MovieLister) ctx.GetObject ("MyMovieLister");} #005 ... lister实例仍然没有与IMovieFinder接口相应的实现注入。此时如果使用MoviesDirectedBy方法会导致NullReferenceException异常发生,因为lister实例仍然还没有对IMovieFinder的引用。注入到lister实例中的IMovieFinder接口实现的XML配置定义如下。 #001 ... #002 <objects> #003 ... #004 <object name="MyMovieFinder" #005 type="Spring.Examples.MovieFinder.SimpleMovieFinder, Spring.Examples.MovieFinder"/> #006 </object> #007 ... #008 </object> #009 ... (4)设值注入。下面要做的是把以MyMovieFinder为标识符的IMovieFinder实例注入到以MyMovieLister为标识符的MovieLister实例中。这个注入动作使用设值注入的方法,代码如下所示: #001 ... #002 <objects> #003 <object name="MyMovieLister" #004 type="Spring.Examples.MovieFinder.MovieLister, Spring.Examples.MovieFinder"> #005 <!-- using setter injection... --> #006 <property name="movieFinder" ref="MyMovieFinder"/> #007 </object> #008 <object name="MyMovieFinder" #009 type="Spring.Examples.MovieFinder.SimpleMovieFinder, Spring.Examples.MovieFinder"/> #010 </object> #011 </objects> #012 ... 当IApplicationContext接口取得了MyMovieLister对象以后,Spring.NET的IoC容器将会把对MyMovieLister对象的引用注入到MyMovieLister对象的MovieFinder属性中去。这样,在程序中引用的MovieFinder对象即配置完毕,可以列出某导演导过的所有电影。 #001 ... #002 public static void Main () #003 { #004 IApplicationContext ctx = ContextRegistry.GetContext(); #005 MovieLister lister = (MovieLister) ctx.GetObject ("MyMovieLister"); #006 Movie[] movies = lister.MoviesDirectedBy("Roberto Benigni"); #007 Console.WriteLine ("\nSearching for movie...\n"); #008 foreach (Movie movie in movies) #009 {Console.WriteLine ( #010 string.Format ("Movie Title = '{0}', Director = '{1}'.", #011 movie.Title, movie.Director));} #012 Console.WriteLine ("\nMovieApp Done.\n\n"); #013 } #014 ...也可以使用构造注入的方法,读者可以自己考虑构造注入方法的实现方式,这里就不再具体介绍。 现在Spring.Net的1.0.2版本已经发布,读者可以通过访问http://sourceforge.net/ projects/ springnet下载。 |
相关文章推荐
- 企业开发框架NHibernate和Spring.Net简介-1
- 企业开发框架NHibernate和Spring.Net简介-2
- 企业开发框架NHibernate和Spring.Net简介-3
- 企业开发框架NHibernate和Spring.Net简介
- .NET企业轻量级开发框架(APS.NET+Spring.Net+NHibernate)
- 企业开发框架NHibernate和Spring.Net
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
- .NET企业应用开发框架Spring.NET
- FastSpring.NET V2.0 Preview 1 发布[Spring.NET & NHibernate的三层的开发框架]
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
- "开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo"项目分析
- ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)
- ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session、Cookie与安全支持
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (五)测试你的成果(转)
- Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用
- Spring的声明式事务管理(李刚 轻量级javaEE 企业应用实战-三大框架整合开发)
- 软件合作开发:2012年年底给苏州工业园区某家软件企业实施C#.NET软件开发系统框架的经验小结
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略
- ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)