对于“spring/springboot整合dubbo详细教程”的完整攻略,可以分为以下步骤实现:
步骤一:准备工作
1.创建Spring或Spring Boot项目,引入依赖:
<!--Dubbo依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.3</version>
</dependency>
<!--注册中心Zookeeper依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.13</version>
</dependency>
- 在创建的工程目录下新建dubbo.xml文件,配置Dubbo。
示例:
<?xml version="1.0" encoding="UTF-8"?>
<dubbo:application name="dubbo-service-provider"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:protocol name="dubbo" port="20880"/>
<dubbo:service interface="com.xxx.service.UserService" ref="userService"/>
<bean id="userService" class="com.xxx.service.impl.UserServiceImpl"/>
其中,dubbo:application
配置Dubbo服务应用名,dubbo:registry
配置注册中心,dubbo:protocol
配置Dubbo协议和端口,dubbo:service
配置服务提供方信息,<bean>
配置具体的服务接口实现类。
步骤二:Dubbo服务提供者
- 创建UserService接口,并在其中定义方法:
示例:
public interface UserService {
User getUserById(int userId);
}
- 创建UserServiceImpl实现UserService接口,并对getUserById方法进行具体实现。
示例:
@Service
public class UserServiceImpl implements UserService {
@Override
public User getUserById(int userId) {
return userDao.getUserById(userId);
}
}
在实现类中使用@Service
注解来表明这是一个Dubbo服务提供者。
- 使用Dubbo的
@Service
注解,将实现类进行注解:
示例:
@Service(interfaceClass = UserService.class)
public class UserServiceImpl implements UserService {
@Override
public User getUserById(int userId) {
return userDao.getUserById(userId);
}
}
其中,interfaceClass
表示服务接口的Class。
步骤三:Dubbo服务消费者
- 创建UserService接口的消费者,并定义使用服务的方法:
示例:
@Service
public class UserServiceConsumer {
@Reference(interfaceClass = UserService.class)
UserService userService;
public User getUserById(int userId) {
return userService.getUserById(userId);
}
}
其中,使用Dubbo的@Reference
注解来引用服务提供方,interfaceClass
表示服务接口的Class。
- 在Spring或Spring Boot的配置文件中,创建对Dubbo服务的引用。
示例:
<dubbo:reference interface="com.xxx.service.UserService" id="userService"/>
其中,interface
表示服务接口的Class,id
表示这个服务引用的Id。
示例一:Spring整合Dubbo
完整代码示例:https://github.com/JohnCorry/spring-dubbo-tutorial
示例二:Spring Boot整合Dubbo
- 引入Spring Boot和Dubbo的依赖
<!--Spring Boot依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<type>pom</type>
</dependency>
<!--Dubbo依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<!--注册中心Zookeeper依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
<exclusions>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
- 在application.properties中配置Dubbo属性
# 服务名
dubbo.application.name=dubbo-service-provider
# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
- 创建Dubbo服务提供者与服务消费者
与Spring整合Dubbo的操作相同。
完整代码示例:https://github.com/crossoverJie/dubbo-tutorial由 crossoverJie 开源
以上就是使用Spring/Spring Boot整合Dubbo的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring/springboot整合dubbo详细教程 - Python技术站