DubboStarter分两个版本,旧版的io.dubbo.springboot,还有基于Apache的org.apache.dubbo,这里是用的最新版Apache的DubboStarter
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stu</groupId>
<artifactId>dubbo.springboot.customer</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spring-boot.version>2.3.1.RELEASE</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-zookeeper</artifactId>
<version>3.0.4</version>
<exclusions>
<exclusion>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-remoting-zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
application.properties
dubbo.application.name=customer dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.name=dubbo dubbo.protocol.port=20880
引用的接口,一般放在单独的项目里,或者注意包名和提供者暴露的保持一致
package com.startup.service;
public interface ISayService {
String sayHello();
}
启动,打印hello
package com.stu.customer;
import com.startup.service.ISayService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
@EnableDubbo
public class Application {
@DubboReference
private ISayService sayService;
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Application.class,args);
Application application = context.getBean(Application.class);
application.sayHello();
}
public void sayHello(){
String rs = sayService.sayHello();
System.out.println(rs);
}
}
SpringBoot整合Dubbo超简单 -provider