SpringBoot开发案例之整合Dubbo消费者

相信,下图大家一定不陌生吧:注册中心,消费者,容器(提供者),监控中心。线框图也是画的如此清晰,这里就不跟大家详细的概述了。

000.jpg

开发环境

JDK1.7、Maven、Eclipse、SpringBoot1.5.1、Dubbo2.8.4

项目结构

21.png

实体类和业务接口,这里就不展示了,与提供者代码同步即可(自行打包引入或者复制)。

application.properties,也没什么好说的,修改一下server.context-path和server.port即可。

 
 
  1. # 项目contextPath,一般在正式发布版本中,我们不配置
  2. server.context-path=/consumer
  3. # 错误页,指定发生错误时,跳转的URL。请查看BasicErrorController源码便知
  4. server.error.path=/error
  5. # 服务端口
  6. server.port=8081
  7. # session最大超时时间(分钟),默认为30
  8. server.session-timeout=60
  9. # 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,只有特殊需求的情况下才配置
  10. # server.address=192.168.16.11
  11. # tomcat最大线程数,默认为200
  12. server.tomcat.max-threads=300
  13. # tomcat的URI编码
  14. server.tomcat.uri-encoding=UTF-8
  15. #ZooKeeper
  16. dubbo.registry.address=192.168.1.180:2181
  17. logging.level.root=ERROR

dubbo.xml:

 
 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  7. <!-- 消费者 应用信息 -->
  8. <dubbo:application name="springBoot_dubbo_consumer"/>
  9. <!-- 注册中心服务地址 -->
  10. <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" />
  11. <!-- 消费者配置 -->
  12. <dubbo:consumer check="false"/>
  13. <!-- 使用注解方式-->
  14. <dubbo:annotation package="com.itstyle.dubbo"/>
  15. </beans>

测试类一SpringbootDubboApplication.java:

 
 
  1. @ImportResource({"classpath:dubbo.xml"})
  2. @SpringBootApplication
  3. //此处 userService 报空指针 如果是注解方式
  4. public class SpringbootDubboApplication implements CommandLineRunner {
  5. @Reference
  6. private IUserService userService;
  7. public static void main(String[] args) {
  8. SpringApplication.run(SpringbootDubboApplication.class, args);
  9. }
  10. @Override
  11. public void run(String... args) throws Exception {
  12. System.out.println("开启");
  13. User user = new User("张三", 19);
  14. userService.saveUser(user);
  15. }
  16. }

测试类二DubboTest.java:

 
 
  1. @Component
  2. @RunWith(SpringJUnit4ClassRunner.class)
  3. @ContextConfiguration(locations = { "classpath:dubbo.xml" })
  4. //可以运行 自行修改 dubbo.xml中address
  5. public class DubboTest {
  6. @Reference
  7. private IUserService userService;
  8. @Test
  9. public void pors() {
  10. System.out.println("开启");
  11. User user = new User("张三", 19);
  12. userService.saveUser(user);
  13. }
  14. }

启动类Application.java:

 
 
  1. /**
  2. * @author 科帮网 小柒
  3. */
  4. @EnableAutoConfiguration
  5. @ImportResource({"classpath:dubbo.xml"})
  6. @Controller
  7. public class Application {
  8. private static final Logger logger = Logger.getLogger(Application.class);
  9. @Reference
  10. private IUserService userService;
  11. @RequestMapping("/")
  12. @ResponseBody
  13. public String greeting() {
  14. User user = new User("张三", 19);
  15. userService.saveUser(user);
  16. return "执行成功";
  17. }
  18. public static void main(String[] args) throws InterruptedException {
  19. SpringApplication.run(Application.class, args);
  20. logger.info("项目启动 ");
  21. }
  22. }

首先运行提供方项目,然后执行消费者启动类,最后我们访问以下URL,http://localhost:8081/consumer ,提供者打印我是:张三,页面返回执行成功,说明调用成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值