Spring Boot集成dubbo简易配置
Spring Boot集成dubbo
准备工作
- 部署zookeeper作为dubbo注册中心
- 新建三个项目模块interface、provider、consumer(官方推荐最佳实践)
模块部分代码
interface
将需要暴露的接口写在这里。实体类一定要序列化
public interface TestService {
/**
* 测试
* @param name
* @param age
* @return
*/
User test(String name, Integer age);
}
public class User implements Serializable {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
provider
1.依赖
<!-- duboo相关依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
<!-- 依赖暴露接口-->
<dependency>
<groupId>com.dubbo.demo</groupId>
<artifactId>dubbo-interface</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
2.yml配置
server:
port: 8081
servlet:
context-path: /
dubbo:
application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
name: dubbo-provider
registry: #注册中心配置,用于配置连接注册中心相关信息。
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
protocol: #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
name: dubbo
port: 20880
3.启动类新增@EnableDubbo注解
@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.service.**")
public class DubboProviderApplication {
public static void main(String[] args) {
SpringApplication.run(DubboProviderApplication.class, args);
}
}
4.实现接口中的方法
@Component
@Service //使用 org.apache.dubbo下的注解
public class TestServiceImpl implements TestService {
@Override
public User test(String name, Integer age) {
User user = new User();
user.setName(name);
user.setAge(age);
return user;
}
}
consumer
1.依赖
<!-- duboo相关依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
<!-- 依赖暴露接口-->
<dependency>
<groupId>com.dubbo.demo</groupId>
<artifactId>dubbo-interface</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
2.yml配置
server:
port: 8080
servlet:
context-path: /
dubbo:
application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
name: dubbo-provider
registry: #注册中心配置,用于配置连接注册中心相关信息。
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
protocol: #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
name: dubbo
port: 20880
3.启动类新增@EnableDubbo注解
@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.web")
public class DubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboConsumerApplication.class, args);
}
}
4.调用dubbo服务
@RestController
public class TestController {
@Reference(check=false,interfaceClass=TestService.class)
private TestService testService;
@PostMapping("test")
public User test(String name, Integer age) {
return testService.test(name, age);
}
}

浙公网安备 33010602011771号