springboot2.X整合dubbo
1.pom文件的配置(服务提供者和消费者都一样)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<!-- zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.5.7</version>
</dependency>
<!-- curator-recipes -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
</dependency>
2.dubbo服务提供者application.yml文件的配置
注意:springboot2.X整合dubbo的时候配置属性不是像springboot1.X以spring.dubbo开头的,直接是以dubbo.开头的
##dubbo服务提供者的配置
dubbo:
application:
name: 项目名
registry:
protocol: zookeeper
address: ${dubbo.resAddress}
##dubbo.resAddress=zookeeper://10.23.0.11:2181?backup=10.23.0.12:2181,10.23.0.200:2181
protocol:
name: dubbo
port: -1
scan:
base-packages: com.xxx.dubbo.impl dubbo接口的实现类所在的包
3.dubbo消费者application.yml文件的配置
#duboo服务消费者的配置
dubbo:
application:
name: 项目名称
registry:
protocol: zookeeper
address: ${dubbo.resAddress}
4.dubbo服务提供者 发布服务时 使用的注解
dubbo接口发布的时候,只需要在dubbo实现类上面加上@DubboService
@org.apache.dubbo.config.annotation.DubboService.DubboService(interfaceClass = XxxxInterface.class
public class XxxxInterfaceInterfaceImpl implements XxxxInterface {
}
5.dubbo消费者者 使用服务时 使用的注解
dubbo接口发布的时候,只需要在dubbo实现类上面加上@DubboReference
@org.apache.dubbo.config.annotation.DubboReference(check = false)
private XxxxInterface xxxxInterface;
6.springboot项目 启动时 如果让dubbo配置生效
在springboot的启动类上加@EnableDubbo
@EnableDubbo
@SpringBootApplication
@EnableConfigurationProperties
public class XXXApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(XXXApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(XXXApplication.class);
}
}
(如果上面pom配置正确,这个配置无需关注)springboot2.X整合dubbo的另一个pom配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<exclusions>
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
</exclusions>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
<exclusions>
<exclusion>
<artifactId>curator-framework</artifactId>
<groupId>org.apache.curator</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>2.12.0</version>
</dependency>