• 输入参数能动态调决定调用哪个实现类 spring的一个特性


    今天做公司的以前项目的时候发现项目中有个特别好的东西,记录下来,分享一下

    发现spring有个这样的功能,我也不知道这个是东西应该怎么称呼,就是通过输入参数,动态决定调用接口的实现类。简单理解就是在spring配置文件定义若干个参数,然后,定义同样多的实现类实现同一个接口,在接口调用方法中,通过输入参数,就能动态决定接口调用具体哪个实现类。这样的好处就是对外发布接口时,接口通过参数能动态的调用某个服务。如果你注重于系统的可扩展性,这个方法确实是个好方法,我重新建了个工程,用来更加简明的理解这个实现过程。

    工程结构如图:myeclipse工程

    image

    首先看spring配置文件,定义了三个bean,其中myService,myService2是接口MyService的实现类

    image

    其中MyServiceMg中定义了一个map,在spring加载的时候会把配置文件里的这个map动态的加载到 mappingServices里去,看MyServiceMy类

    image

    在这个handle方法里就是根据参数来决定MyService动态调用的实现类

    看测试结果就明白了

    image

    三个测试结果出来了,第一个和第二个参数都在配置文件里有配置,所以能动态调用相应的实现类来实现,第三个没有配置,所以抛出异常,怎么样,这个东西是不是有点意思了,能动态调用具体的实现类,我想想以后肯定很多地方能够用到

    附件已上传:http://files.cnblogs.com/wxwall/myProject.zip

    欢迎大家拍砖!

  • 相关阅读:
    ASP.Net验证码类
    net进行Socket通信
    web browser 小结
    WebService远程调试
    javascript 资料(一)
    释放非托管资源 IDisposable模式的实现、使用
    asp.net2.0 WebForm_DoPostBackWithOptions
    使用jquery.json把js对象转换成json
    多选列表双击选中
    JQuery对Select的操作
  • 原文地址:https://www.cnblogs.com/wxwall/p/3159850.html
Copyright © 2020-2023  润新知