java spring、.net castle windsor 、unity容器使用方法对比

本文内容纲要:java spring、.net castle windsor 、unity容器使用方法对比

  综合研究使用了java spring\.net castle\unity 进行管理,在使用配置文件的情况下发现还是java spring 和castle windsor 比较简洁,但从服务支持和RoadMap上讲,觉得在.net领域还是Unity胜出,能充分利用.net framework .

  

我选择Unity的几大理由:

1、持续的RoadMap

2、强大的微软

3、因为基于.net ,更原生态

4、和WCF的集成能力

一、java spring 用法:

import javax.jws.WebService;

import org.springframework.beans.factory.annotation.Autowired;

import capinfo.sior.service.OnlineReportPreRegisterService;;

/**

* @author design-life

*/

@WebService(serviceName = "InfoReportWebService", endpointInterface = "InfoReportWebService", targetNamespace = "http://reportwbs/")

public class GetPreRegisterInfoWebServiceImpl {

@Autowired

OnlineReportPreRegisterService service;

public String GetPreRegisterInfo(String registerCode,String scanCode){

return service.getPreRegisterInfo(registerCode, scanCode);

}

}

注:

OnlineReportPreRegisterService 是定义的一个Interface,通过 @Autowired表示自动装配实例化一个类,具体定义封装在一个xml中,实现类在xml表现为一个bean.

二.net Castle 用法:

namespace TestService.Controller

{

using Castle.Core;

using Castle.DynamicProxy;

[ControllerDetails(Area="TestService")]

public class BulletinInfoController : SmartDispatcherController

{

private readonly IDataQuery query;

private string _title;

public BulletinInfoController(IDataQuery query)

{

this.query = query;

}

public BulletinInfoController() { }

public IList List()

{

IList list;

News news = new News();

list = query.UseCriteriaAPI_Get2pagelistinfo(news);

return list;

}

}

注:在Castle 声名

private readonly IDataQuery query; 但需要构造函数初使化它,在整个Castle中Controller 、Service等均可通过配置文件的方式,让容器管理它们。

三、Unity用法

public static void TestCode2()

{

var fileAdd = "unityApp.config";

var filePath = new ExeConfigurationFileMap { ExeConfigFilename = fileAdd };

try

{

Configuration cfg = ConfigurationManager.OpenMappedExeConfiguration(filePath, ConfigurationUserLevel.None);

var unitySection = (UnityConfigurationSection)cfg.GetSection("unityTest");

var container = new UnityContainer().LoadConfiguration(unitySection, "one");

var iAdd = container.Resolve<IAddInfo.IAddInfo>();

Console.WriteLine(iAdd.NotifyMsg());

}

catch (Exception err)

{

throw err;

}

Console.ReadKey();

}

注:黑体字部分是Unity使用配置文件的方法,略显麻烦,不过可以把这部分提取出来,变成和第一、二种一样的方式。

本文内容总结:java spring、.net castle windsor 、unity容器使用方法对比

原文链接:https://www.cnblogs.com/design-life/archive/2011/06/22/2087056.html

以上是 java spring、.net castle windsor 、unity容器使用方法对比 的全部内容, 来源链接: utcz.com/z/296192.html

回到顶部