`
knight_black_bob
  • 浏览: 822971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态加载 dubbo spring

阅读更多

动态加载 dubbo spring

 

1.首先删除 配置文件中 dubboservice ,以及 项目中引用 service,然后 删除entity 中user,以及service 中userservice

<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<!-- <dubbo:reference id="userService"  interface="com.curiousby.cn.service.UserService" /> -->

 



 

 

 

2. usercontroller中修改代码

  
    @RequestMapping(value="/auto/{userId}", method=RequestMethod.GET)
    public Object  getUserById2(@PathVariable int userId) throws  Exception {
    	 String url = "dubbo://localhost:20880/com.curiousby.cn.service.UserService";//更改不同的Dubbo服务暴露的ip地址&端口  
    	 //dubbo%3A%2F%2F10.133.254.143%3A20880%2Fcom.curiousby.cn.service.UserService%3Fanyhost%3Dtrue%26application%3Ddubbox-productor%26dubbo%3D2.5.3%26interface%3Dcom.curiousby.cn.service.UserService%26methods%3DfindById%26pid%3D14284%26side%3Dprovider%26timestamp%3D1517473747502
    	 
    	 ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();  
    	 URL  classesurl = new URL( "file:///D:/cache/eclipse4mvn-workplace/SpringBootDubboxDemo-Consumer/target/classes/com/curiousby/cn/" );  
    	 ClassLoader custom = new URLClassLoader( new URL[] { classesurl }, systemClassLoader ); 
    	 
    	 //Class  myClazz =   Class.forName("com.curiousby.cn.service.UserService");
    	 Class myClazz = custom.loadClass("com.curiousby.cn.service.UserService"); 
    	   
    	 List classList = new ArrayList();
    	 List valList = new ArrayList();
    	 classList.add(Class.forName("java.lang.Integer"));
    	 valList.add(userId);
    	 
    	 ReferenceBean referenceBean = new ReferenceBean();  
         referenceBean.setApplicationContext(applicationContext);  
         referenceBean.setInterface(myClazz);  
         referenceBean.setUrl(url);  
   
         try {  
             referenceBean.afterPropertiesSet();  
             Object object = referenceBean.get(); 
              
             Method  methodService = myClazz.getMethod("findById", (Class[])classList.toArray(new Class[0]));
             return methodService.invoke(object, valList.toArray());
         } catch (Exception e) {  
             e.printStackTrace();  
         }
		return null;  
    }

 

 

3.上传 class 文件到指定位置



 



 

 

 

这样就可以按照配置,自动上传 class 并解析 消费服务了



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者 

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。

 

个人主页http://knight-black-bob.iteye.com/



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

 

 

  • 大小: 35.8 KB
  • 大小: 88.2 KB
  • 大小: 17.1 KB
  • 大小: 57.9 KB
0
2
分享到:
评论

相关推荐

    dubbo+Spring+SpringMVC实例,spring配置文件启动

    使用spring配置文件配置dubbo服务,ioc注入。不是其他入门实例的api启动。 每一步可能犯的错误都在下面的地址里有详细描述 详细介绍参见blog http://blog.csdn.net/fangxiaoji/article/details/41845955

    dubbo-spring-boot-project:Apache Dubbo的Spring Boot项目

    Apache Dubbo Spring Boot项目 Spring Boot Project使使用Dubbo...您可以通过向pom.xml中添加以下依赖项,将最新的dubbo-spring-boot-starter引入项目中。 &lt; spring&gt;2.3.0.RELEASE&lt;/ spring&gt; &lt; dubbo&gt;2.7.8&lt;/ d

    incubator-dubbo-spring-boot-project

    Dubbo Spring Boot项目 Spring Boot Project使使用Dubbo作为RPC框架轻松创建应用程序。...您可以通过向pom.xml中添加以下依赖项,将最新的dubbo-spring-boot-starter引入项目中。 &lt; groupId&gt;com.alibaba.boot&lt;

    dubbo-master.zip

    dubbo-master.zipDubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。如果不想使用Spring配置,而希望通过API的方式进行...

    dubbo-master

    dubbo-master.zipDubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可. Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载...

    Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架

    Dubbo 配置文件是如何加载到 Spring 中的? 说说核心的配置有哪些? Dubbo 超时设置有哪些方式? 服务调用超时会怎么样? 通信协议 Dubbo 使用的是什么通信框架? Dubbo 支持哪些协议,它们的优缺点有哪些? 设计模式...

    dubbo监控中心war包

    dubbo监控中心war包, 可以直接放到tomcat下运行 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载

    dubbo接口测试调试工具

    如果您电脑安装了git bash,可以在bash窗口运行 ./deploy.sh start,否则如果没有安装git bash,只能打开cmd切换到F:\app\doe目录,然后执行java -jar dubbo-doe-1.0.0-RELEASE.jar --spring.profiles.active=prd ...

    LCN 分布式事务框架 ,兼容 dubbo、springcloud、motan 框架,支持各种关系型数据库.zip

    1. SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中。 2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且...

    基于SSM框架的健康项目管理源码,整合Dubbo分布式与SpringSecurity权限认证

    项目整合了Dubbo分布式服务框架,以及SpringSecurity进行权限认证,确保系统的安全性和高效性。技术栈多元,主要使用JavaScript进行开发,同时涵盖了CSS、HTML、Java、PHP等多种语言。 文件构成:项目共包含3390个...

    dubbo.xsd文件分享

    dubbo.xsd 下载 添加 xsd 源码位置获得:dubbo-config\dubbo-config-spring\src\main\resources\META-INF\dubbo.xsd

    dubbo_admin-2.54.war和dubbo_admin_2.54forJDK8

    修正了开发阶段在管理界面添加的路由默认runtime为false的情况,便于调试ConditionRouter的源代码。 该压缩包可以在windows和linux下直接解压缩并运行,包含所有依赖的jar包。 dubbo 2.5.4的管理控制台zip包,专门为...

    dubbo+zookeeper微服务分布式架构源码

    Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展 进行加载。Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型...

    idea的dubbodemo

    利用idea开发dubbo, Maven构建工程, tomcat7插件运行. spring加载服务

    spring-boot-dubbo:具有Dubbo支持的Spring Boot

    雷迪斯使用Redis注册中心,需要将在pom.xml中添加对应的redis客户端,代码如下: &lt; dependency&gt; &lt; groupId&gt;redis.clients&lt;/ groupId&gt; &lt; artifactId&gt;jedis&lt;/ artifactId&gt; 对应的配置项为:spring.dubbo.registry = ...

    Spring+Maven+Dubbo+MyBatis+Linner+Handlebars企业化Web开发环境搭建

    详细介绍web框架的相关知识,帮你搭建好环境。

    DUBBO功能使用说明

    3)在CustomerService实现类中添加成员变量,并添加@AutoWired注解让spring自动完成该service的注入。 @Autowired public IAccountService accountService; 4)代码中调用 accountService.getAccount(name)

    分布式RPC服务框架Dubbo从入门到手写Dubbo框架教程

    Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 通过图解的形式对Dubbo原理讲解,据绝枯燥的理论,通过图文代码和...

    SpringAll_wuyouzhuguli.tar.gz

    循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Cloud、Spring Security & Spring Security OAuth2,博客Spring系列源码 一、Spring Boot教程 开启Spring Boot Spring Boot基础配置 Spring Boot中使用...

    Springmvc+dubbo+mybatis+mysql+redis

    新添加了redis的功能,这玩意需要启动zookooper、redis服务(本地就可以,源码中自带zk、redis包),后续开发集群

Global site tag (gtag.js) - Google Analytics