大家好,又见面了,我是你们的朋友全栈君。
springBoot整合dubbo集成
传统Spring 整合dubbo,需要繁琐的编写一堆堆的*.xml 配置文件
而springBoot整合dubbo后,不在需要写*.xml,通过jar包引用,完
成整合,通过注解的形式完成配置。提高我们的开发效率
目录结构
1 服务层生产者开发(hs-ldm-server-service)
1.1添加dubbo依赖包
<dependencies>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.9</version>
</dependency>
如果不加curator-recipes和curator-framework依赖启动java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy 问题。
启动如果报错,请检查依赖版本是否过低!
1.2 配置application.properties
server.port=8050
#dubbo配置
spring.dubbo.application.name=hs-ldm-server-service
#注册中心地址
spring.dubbo.registry.address=zookeeper://192.168.228.52:2181
#配置了这个后,就会一直有守护京城,而不是启动就怪盗了
spring.dubbo.server=true
#扫描的包
spring.dubbo.scan=com.gy.ldm.server
#Dubbo Protocol
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=29999
spring.dubbo.protocol.version=1.0.0
#DemoService version
service.version=1.0.0
1.3服务类
package com.gy.ldm.server.service;
import org.springframework.stereotype.Component;
import com.alibaba.dubbo.config.annotation.Service;
@Component
@Service(version="${service.version}" ,interfaceClass = DubboServiceApi.class)
public class DubboService implements DubboServiceApi{
public String getDubbo() {
// TODO Auto-generated method stub
return "dubbo";
}
}
@component (把对象实例化到spring容器中)
注意这里的service引用!(com.alibaba.dubbo.config.annotation.Service)
1.4 服务启动类
@SpringBootApplication
@EnableDubboConfiguration
public class LdmServerApp {
public static void main(String[] args) {
SpringApplication.run(LdmServerApp.class, args);
}
}
启动成功!
2.接入层消费者开发
添加依赖和服务层提供者依赖一样
2.1配置application.properties
server.port=8051
#dubbo配置
#服务名称
spring.dubbo.application.name=ldm-client
#注册中心地址
spring.dubbo.registry.address=zookeeper://192.168.228.52:2181
#扫描的包
spring.dubbo.scan=com.gy.ldm.client
## DemoService version
service.version=1.0.0
2.2Controller层服务
package com.gy.ldm.client.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.dubbo.config.annotation.Reference;
import com.gy.ldm.server.service.DubboServiceApi;
@Controller
public class TestController {
@Reference(version="${service.version}",check = false)
private DubboServiceApi dubboServiceApi;
@RequestMapping("customer")
@ResponseBody
public String customer(){
return dubboServiceApi.getDubbo();
}
}
2.3启动服务
package com.gy.ldm.client;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
@EnableDubboConfiguration
@SpringBootApplication
public class LdmClientApp {
public static void main(String[] args) {
SpringApplication.run(LdmClientApp.class, args);
}
}
3.测试访问
4.注册中心服务
可以看见提供者发布的服务
springboot整合dubbo项目会上传,可以在我主页去下载
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127003.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...