zoukankan      html  css  js  c++  java
  • Spring.net管理web services

    先引用一段spring.net framework帮助文档里的话:

      “虽然目前.NET对web服务支持的非常好,Spring.NET认为还是有几个方面可以改进。

    . 服务端

    首先,.NET在.asmx文件中保存Web服务请求和服务对象的关联关系,这些.asmx文件不管有用没用都得放在那儿。

    第二,Spring.NET希望能通过IoC容器对web服务进行依赖注入。一般说来web服务总会依赖其它服务对象,所以,如果能用配置方式来选择服务对象,这个功能就相当强大了。

    最后,目前在.NET中Web服务的创建完全是一个实现(特定类型)的过程。多数服务(虽不能说是全部)都应实现为使用粗粒度服务接口的普通类型,并且,某个对象能否发布为远程对象、web服务还是企业(COM+)组件应该只与配置有关,而不应该取决于它的实现方式。

    .消除对.asmx文件的依赖

    ASP.NET用.aspx文件来保存表示层代码,用code-behind文件中的类保存应用逻辑,.aspx与类代码文件各有分工;但web服务却不同,Web服务的逻辑完全是在code-behind的类中实现的。.asmx文件并没有什么真正的用途,实际上,这个文件既没有必要存在、也不应该存在。

    在将WebServiceFactoryHandler类注册为响应*.asmx请求的HTTP Handler之后,开发人员就可以在IoC容器中用标准的Spring.NET对象定义来发布Web服务。

      ◆欧克,意思说得很明白,在web.config中注册一个httpHandlers节,以接管.asmx请求:

    web.config

      ◆既然不存在也不需要物理文件.asmx了,那就需要使用web services代理,来模拟.asmx页,这就是Spring.Web.Services.WebServiceExporter类的工作,它能显式导出web services。
      举例说明一下:现有一个web services——SongSrvService(是一个类),它有一个方法GetSongUrl,用以获取一首曲子的地址,如果要把它导出为web services,应为此建立一个配置,并在spring.net环境中加载它:

    servicesConfig.xml
    web.config


      这里,看一下services运行的截屏:  

      可以看到,在WebServiceExporter导出类配置的节信息,都会忠实地显示在services描述中。如Description(描述)、MemberAttributes(方法描述)等。

      ◆欧克,回溯一步,我们来看看这个被代理导出的web services实现类,应该是什么样子?
      在spring.net 1.1.0.2中,如果要让一个类被显式导出为web services,那么,它首先应该是实现某个接口的,意即——它的功能,全在一个接口被描述过。

      在bll层新建一个SongServices类,其中包括一个services接口和一个实现类:

    SongServices.cs

      欧克,这就是Spring.net建议的web services管理方式。小结一下:
      1、这种方式,省掉了一个.asmx页面;
      2、整合了其他的spring.net下的对象,如方便了注入、拦截;
      3、开发难度并未增加,图示说明:


  • 相关阅读:
    mysql 添加权限和撤销权限的实例(亲测可行)
    svn-经常遇到问题解答办法积累(一)
    一个命令查看mysql的所有配置(原创)
    IOC容器Unity的使用及独立配置文件Unity.Config
    JS如何封装一些列方法为一个对象的操作,然后集中管理这些操作,方便修改和调用
    VSS 的修复和扫描
    js正则获取图片的src属性及正则分割一个字符串
    Mongodb 服务(windows环境下)因被强制关闭,导致服务不能启动的处理办法
    dir结果重定向到剪切板
    property配置
  • 原文地址:https://www.cnblogs.com/myssh/p/1504870.html
Copyright © 2011-2022 走看看