maven整合@data注解_SpringBoot 整合 Dubbo实践(实用文章)
作者:Cott
来源:https://www.cnblogs.com/cott/p/12373043.html
1.选择ZooKeeper作为注册中心
在linux环境中使用docker安装ZooKeeper
//拉取zookeeper镜像docker pull zookeeper//启动zookeeperdocker run -d -p 2181:2181 -v /mysoft/zookeeper/data/:/data/ --name=zookeeper --privileged zookeeper
使用zookeeper-dev-ZooInspector客户端连接工具查看
2.创建maven项目统一声明接口,把所有接口提取到单独的项目,通过maven引入到其他项目
pom.xml
UserAddress.java
OrderService.java
package com.cott.gmail.service;import com.cott.gmail.bean.UserAddress;import java.util.List;public interface OrderService { List initOrder(String id);}
UserService.java
package com.cott.gmail.service;import com.cott.gmail.bean.UserAddress;import java.util.List;public interface UserService { List getAddress(String userId);}
3.创建生产者SpringBoot项目
pom.xml引入上文接口项目,引入dubbo依赖
实现UserService接口,作为dubbo的生产者需要用@Service注解,为了和spring的@Service注解区分,所以这里用的是@Component注解。更多springboot实战类文章:SpringBoot内容聚合
UserServiceImpl.java
package com.cott.gmail.bootuserserviceprovider.service.impl;import com.alibaba.dubbo.config.annotation.Service;import com.cott.gmail.bean.UserAddress;import com.cott.gmail.service.UserService;import org.springframework.stereotype.Component;import java.util.Arrays;import java.util.List;@Service@Componentpublic class UserServiceImpl implements UserService { @Override public List getAddress(String uesrId) { UserAddress userAddress1 = new UserAddress(); userAddress1.setId(1); userAddress1.setUserAddress("1"); userAddress1.setUserId("1"); UserAddress userAddress2 = new UserAddress(); userAddress2.setId(2); userAddress2.setUserAddress("2"); userAddress2.setUserId("2"); return Arrays.asList(userAddress1, userAddress2); }}
主方法上用@EnableDubbo启用Dubbo注解
BootUserServiceProviderApplication.java
package com.cott.gmail.bootuserserviceprovider;import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@EnableDubbo@SpringBootApplicationpublic class BootUserServiceProviderApplication { public static void main(String[] args) { SpringApplication.run(BootUserServiceProviderApplication.class, args); }}
配置文件指定应用名称,注册中心,服务协议和端口号
application.yml
dubbo: application: name: boot-user-service-provider registry: address: 192.168.200.128:2181 protocol: zookeeper protocol: name: dubbo port: 20880
最后启动程序,在dubbo-admin中查看服务已经注册上去了。
4.创建消费者SpringBoot项目
pom.xml引入上文接口项目,引入dubbo依赖
实现OrderServiece接口,这里的@Service是spring的,这里使用@Reference注解声明UserService是通过远程调用注入进来
OrderServiceImpl.java
package com.cott.gmail.bootorderserviceconsumer.service.impl;import com.alibaba.dubbo.config.annotation.Reference;import com.cott.gmail.bean.UserAddress;import com.cott.gmail.service.OrderService;import com.cott.gmail.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class OrderServiceImpl implements OrderService { @Reference UserService userService; @Override public List initOrder(String id) { System.out.println("id= " + id); List list = userService.getAddress("1"); for (UserAddress user : list ) { System.out.println(user.getUserAddress()); } return list; }}
OrderController.java
package com.cott.gmail.bootorderserviceconsumer.controller;import com.cott.gmail.bean.UserAddress;import com.cott.gmail.service.OrderService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controllerpublic class OrderController { @Autowired OrderService orderService; @ResponseBody @GetMapping("/initOrder") public List initOrder(@RequestParam(name = "id") String id) { return orderService.initOrder(id); }}
@EnableDubbo启用Dubbo注解
BootOrderServiceConsumerApplication.java
package com.cott.gmail.bootorderserviceconsumer;import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@EnableDubbo@SpringBootApplicationpublic class BootOrderServiceConsumerApplication { public static void main(String[] args) { SpringApplication.run(BootOrderServiceConsumerApplication.class, args); }}
配置文件中声明服务名称,注册中心,以及tomcat对外端口号
application.yml
dubbo: application: name: order-service-provider registry: address: 192.168.200.128:2181 protocol: zookeeperserver: port: 8081
至此,一个简单的dubbo项目已经开发完成,下面启动消费者项目,在浏览器中输入url,得到返回结果
maven整合@data注解_SpringBoot 整合 Dubbo实践(实用文章)相关推荐
- maven整合@data注解_springboot整合spring Cache(redis)
前言 前面有介绍过spring整合redis和redis的一些注意点,在实际开发中,spring cache方便简化的缓存操作的大部分内容.通过注解的方式实现缓存. 缓存抽象的核心是将缓存应用于Jav ...
- @builder注解_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证
一.说明 SpringSecurity是一个用于Java 企业级应用程序的安全框架,主要包含用户认证和用户授权两个方面.相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更 ...
- @primary注解_springboot整合redis分别实现手动缓存和注解缓存
一.前期准备 1.一个构建好的springboot系统2.下载redis安装包,去redis官网下载3.启动redis服务,windows下双击bin目录下的redis-service.exe 二.环 ...
- hibernate整合mysql配置文件_springboot整合hibernate配置
添加sprngboot依赖<?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http: ...
- spring注解方式整合Dubbo源码解析
系列文章目录 前言 本节我们的Dubbo源码版本基于2.6.x 在前一章我们的整合案例中,我们有几个比较关键的步骤: 在启动类上标注了@EnableDubbo注解 在provider类上面标注了@Se ...
- springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...
SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc.durid.mybatis的方式. (一)整合jdbc 整合jdbc主要有三步: 1 ...
- mybatisplus 结果_springboot整合mybatisPlus 乐观锁的实现
1:乐观锁 1.1:乐观锁简介 乐观锁:总是假设最好的情况,在读取数据的使用不会发生并发问题,但在更新的时候比较原数据是否被其他线程发生了改变.主要通过通过版本号机制或CAS算法实现,适用于读多写少的 ...
- mybatis java类注解式_Spring整合Mybatis注解方式
Spring整合Mybatis(注解方式) 环境准备 jar包: Spring所需依赖:spring-context.spring-aspects.aspectjrt.aspectjweaver.sp ...
- springboot公共模块打包_SpringBoot 整合篇
来自:SimpleWu 链接:https://www.cnblogs.com/SimpleWu/p/9798146.html SpringBoot简介 Spring Boot是由Pivotal团队提供 ...
最新文章
- [学习笔记]最小圆覆盖
- getDimension/getDimensionPixelSize/getDimensionPixelOffset()
- 密码技术--证书及go语言生成自签证书
- 第013课_代码重定位
- 26个提升java性能需要注意的地方
- dotnet core调试docker下生成的dump文件
- Close window without alert
- 苹果怎么关闭系统自动更新_你知道怎么用安卓手机更省电吗?学会这样做,不难...
- 编址与存储相关计算(一)——软考之路
- 锐捷Linux版的下载和使用(福大客户端)
- oracle根据身份证计算年龄的方法
- iphone测试内存读取速度软件,iPhone7内存不同读写速度有差? 实测差距惊人!
- PHP数据加密的几种方式
- 数据结构:手把手教你写代码系列总结与说明
- 华为nova8和小米10青春版哪个好
- 微信小程序详解 php,微信小程序canvas基础详解
- Vue响应式原理(看这一篇就够了)
- python小白入门
- java无敌_12 款做Java后台管理系统的项目,超级无敌好用!
- 论文笔记: iDice: Problem Identification for Emerging Issues