Spring Boot 与 Dubbo 的整合
1. 添加依赖
<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Dubbo Spring Boot Starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.8</version></dependency><!-- Dubbo dependencies --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>2.7.8</version></dependency><!-- Zookeeper dependencies, used for service registration and discovery --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency>
</dependencies>
2. 配置 Dubbo
在 application.properties 或 application.yml
# application.properties
dubbo.application.name=dubbo-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
# application.yml
dubbo:application:name: dubbo-providerregistry:address: zookeeper://127.0.0.1:2181protocol:name: dubboport: 20880
3. 创建服务接口
public interface HelloService {String sayHello(String name);
}
4. 实现服务接口
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;@Service
@Component
public class HelloServiceImpl implements HelloService {@Overridepublic String sayHello(String name) {return "Hello, " + name + "!";}
}
5. 启动类上添加 Dubbo 注解
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubbo
public class DubboProviderApplication {public static void main(String[] args) {SpringApplication.run(DubboProviderApplication.class, args);}
}
6. 创建消费者
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;@Component
public class ConsumerComponent {@Referenceprivate HelloService helloService;public void doSayHello(String name) {String message = helloService.sayHello(name);System.out.println(message);}
}
整合完成