博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-boot-note9---dubbo基本使用
阅读量:4075 次
发布时间:2019-05-25

本文共 5315 字,大约阅读时间需要 17 分钟。

4spring-boot-note9---dubbo的基本使用

工程简介:一个父项目demo82_dubbo_all,下面四个子项目:spring_dubbo_api、spring_dubbo_common、spring_dubbo_controller、spring_dubbo_service。

依赖关系:spring_dubbo_controller和spring_dubbo_service一起依赖spring_dubbo_api。而spring_dubbo_api依赖spring_dubbo_common。

spring_dubbo_common: 主要是pojo,工具类

spring_dubbo_api: 公共接口类

spring_dubbo_service:提供服务实现

spring_dubbo_controller:消费服务

一、开始建立项目--父pom.xml

4.0.0
demo82_dubbo
demo82_dubbo
0.0.1-SNAPSHOT
pom
demo82_dubbo
demo82_dubbo
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
UTF-8
UTF-8
1.8
1.0
org.springframework.boot
spring-boot-starter-web
com.alibaba.boot
dubbo-spring-boot-starter
0.2.0
org.apache.zookeeper
zookeeper
3.4.8
com.101tec
zkclient
0.10
org.apache.maven.plugins
maven-compiler-plugin
${java.version}
${java.version}
${project.build.sourceEncoding}
spring_dubbo_api
spring_dubbo_common
spring_dubbo_controller
spring_dubbo_service

二、spring_dubbo_common项目

public class Product implements Serializable{	private static final long serialVersionUID = 136863327838375848L;	private Integer id;		private String name;		private Double price;		private String desc;

三、spring_dubbo_api项目

1、pom

  <dependencies>
      <dependency>
           <groupId>demo82_dubbo</groupId>
        <artifactId>spring_dubbo_common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
  2、com.wj.api包下就一个api类

/** * 公共接口 */public interface ProductService {	List
findAll(); void addOne(Product p); void deleteOne(Integer id); void findOne(Integer id);}

四、spring_dubbo_service项目 端口8080

demo82_dubbo
spring_dubbo_api
0.0.1-SNAPSHOT

4.1配置application.properties

#启动端口server.port: 8080#服务方需要配置前三项+portdubbo.application.name:server-providerdubbo.registry.address:zookeeper://127.0.0.1:2181dubbo.protocol.name:dubbodubbo.protocol.port:20880

4.2 DaoKit

public class DaoKit {		/**	 * 内存数据库	 */	private static Map
products = new HashMap<>(); static{ for (int i = 0; i < 10; i++) { Product p = new Product(); p.setId(i); p.setName("name"+i); p.setPrice((double) i); p.setDesc("desc"+i); products.put(i, p); } } public static List
findAll() { List
list = new ArrayList<>(); list.addAll(products.values()); return list; } public static void deleteOne(Integer id) { products.remove(id); } public static void findOne(Integer id) { products.get(id); } public static void addOne(Product p) { if(p.getId()!=null) { Product old = products.get(p.getId()); if(old==null) { products.put(p.getId(), p); } } } }

4.3 ProductServiceImpl 需要标注@Service(interfaceClass = ProductService.class)

@Service(interfaceClass = ProductService.class)@Componentpublic class ProductServiceImpl implements ProductService{	@Override	public List
findAll() { System.out.println("服务被调用"); return DaoKit.findAll(); } @Override public void addOne(Product p) { DaoKit.addOne(p); } @Override public void deleteOne(Integer id) { DaoKit.deleteOne(id); } @Override public void findOne(Integer id) { DaoKit.findOne(id); }}

4.4 启动类

@EnableDubbo@SpringBootApplicationpublic class Application {	/**	 * main方式启动 :	 */	public static void main(String[] args) {		SpringApplication.run(Application.class, args);	}}

主要有几个地方配置:1、app.prop配置地址等。2、实现接口的service标注@Service 3、使用@EnableDubbo开启

五、spring_dubbo_controller工程 端口8082

1、pom.xml同spring_dubbo_service

2、application.properties

#启动端口server.port: 8082#消费方需要配置前三项dubbo.application.name:server-consumerdubbo.registry.address:zookeeper://127.0.0.1:2181dubbo.protocol.name:dubbo

3、ProductController

@RestControllerpublic class ProductController {	@Reference	private ProductService service;		@GetMapping("/findAll")	public List
findAll() { System.out.println("服务被消费"); return service.findAll(); } }

主要有几个地方配置:1、app.prop配置地址等。2、注入的service标注@Reference  3、使用@EnableDubbo开启

 

六、测试

轮流启动service和controller2个项目,访问地址http://localhost:8082/findAll。

这个是service项目打印的

七、dubbo_admin的使用

本人已经打包一个新的dubbo_admin,地址到我的资源找,将此war部署到tomcat中即可.

访问地址:http://localhost:8090  (8090你配置tomcat的端口)。账号root root

 

 

 

 

转载地址:http://ehuni.baihongyu.com/

你可能感兴趣的文章
动态设置label的高度
查看>>
获取 一个文件 在沙盒Library/Caches/ 目录下的路径
查看>>
图片压缩
查看>>
检测缓存文件是否超时
查看>>
十进制字符串转十六进制字符串
查看>>
属性字符串(富文本)的使用
查看>>
cell上label的背景颜色在选中状态下改变的解决办法
查看>>
GPS定位
查看>>
地图、显示用户位置、大头针
查看>>
自定义大头针
查看>>
UIButton添加block点击事件
查看>>
利用runtime给类别添加属性
查看>>
本地推送
查看>>
FMDB的使用
查看>>
UIImage存为本地文件与UIImage转换为NSData
查看>>
[转]打印质数的各种算法
查看>>
[转]javascript with延伸的作用域是只读的吗?
查看>>
php的autoload与global
查看>>
IE不支持option的display:none属性
查看>>
[分享]mysql内置用于字符串型ip地址和整数型ip地址转换函数
查看>>