开发者社区> curiousby> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

动态加载 dubbo spring

简介: 动态加载 dubbo spring   1.首先删除 配置文件中 dubboservice ,以及 项目中引用 service,然后 删除entity 中user,以及service 中userservice         2.
+关注继续查看

动态加载 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/



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

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
好消息:Dubbo & Spring Boot要来了
Duboo和Spring Boot都是非常优秀的框架,现在它们要结合了。为了简化Dubbo开发集成,阿里Dubbo团队将发布基于Spring Boot的版本,可快速上手Dubbo的分布式开发,并提供了一些准生产环境特性(如安全、健康检查、配置外部化等……)。
62 0
好消息:Dubbo & Spring Boot要来了
image Duboo和Spring Boot都是非常优秀的框架,现在它们要结合了。为了简化Dubbo开发集成,阿里Dubbo团队将发布基于Spring Boot的版本,可快速上手Dubbo的分布式开发,并提供了一些准生产环境特性(如安全、健康检查、配置外部化等……)。
2165 0
【Spring Boot系列2】还在为配置文件注解头疼?一文带你全部搞定!
本来想讲解SpringBoot的配置文件,但是里面一堆注解让我很是蒙圈,感觉用起来都差不多,比如@PropertySource、@ImportResource、@Value、@ConfigurationProperties等,加上之前掌握的@Configuration和@Bean。 一个配置文件,搞这么多注解,感觉头有点大,这篇文章主要是对这些注解进行扫盲,希望扫盲完后,我以后就不再怕它们了。
34 0
Spring Boot 应用可视化监控,一目了然!
Spring Boot 应用可视化监控,一目了然!
194 0
Spring Boot中使用Spring Security进行安全控制
Spring Boot中使用Spring Security进行安全控制
151 0
Spring Boot 实现定时任务的 4 种方式
定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
114 0
企业级 SpringBoot 教程 (二)Spring Boot配置文件详解
springboot采纳了建立生产就绪Spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。在一般情况下,我们不需要做太多的配置就能够让spring boot正常运行。
1139 0
Spring boot 通用配置文件模板
001 # =================================================================== 002 # COMMON SPRING BOOT PROPERTIES 003 # 004 # This sample file is provided as a guideline.
1612 0
Spring Boot 启动加载数据 CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。
966 0
+关注
curiousby
echo
428
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载