1. 程式人生 > >SpringBoot與Dubbo整合的三種方式

SpringBoot與Dubbo整合的三種方式

前置條件(匯入依賴)

(1)、匯入dubbo-starter
(2)、匯入dubbo的其他依賴

SpringBootdubbo整合的三種方式:

一、匯入dubbo-starter依賴,在 application.properties 或者 application.yml 配置屬性,使用@Service【暴露服務】、使用@Reference【引用服務】;

【需要在SpringBoot啟動類新增 @EnableDubbo 開啟基於註解的dubbo功能】


二、保留dubbo xml配置檔案(provider.xml 或者 consumer.xml);

  匯入dubbo-starter依賴,在SpringBoot啟動類上使用@ImportResource註解匯入dubbo的配置檔案即可。

  ```java
  @ImportResource(locations="classpath:provider.xml")`
  ```

三、使用註解API的方式:

(1)、將每一個元件手動建立到容器中,讓dubbo來掃描其他的元件。

@Configuration
public class MyDubboConfig {
    
    /* <dubbo:application name="boot-user-service-provider"></dubbo:application> */
@Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("boot-user-service-provider"); return applicationConfig; } /* <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry> */
@Bean public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setProtocol("zookeeper"); registryConfig.setAddress("127.0.0.1:2181"); return registryConfig; } /* <dubbo:protocol name="dubbo" port="20882"></dubbo:protocol> */ @Bean public ProtocolConfig protocolConfig() { ProtocolConfig protocolConfig = new ProtocolConfig(); protocolConfig.setName("dubbo"); protocolConfig.setPort(20882); return protocolConfig; } /** <dubbo:service interface="com.atguigu.gmall.service.UserService" ref="userServiceImpl01" timeout="1000" version="1.0.0"> <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method> </dubbo:service> */ @Bean public ServiceConfig<UserService> userServiceConfig(UserService userService){ ServiceConfig<UserService> serviceConfig = new ServiceConfig<>(); serviceConfig.setInterface(UserService.class); serviceConfig.setRef(userService); serviceConfig.setVersion("1.0.0"); //配置每一個method的資訊 MethodConfig methodConfig = new MethodConfig(); methodConfig.setName("getUserAddressList"); methodConfig.setTimeout(1000); //將method的設定關聯到service配置中 List<MethodConfig> methods = new ArrayList<>(); methods.add(methodConfig); serviceConfig.setMethods(methods); //MonitorConfig... return serviceConfig; } }

(2)、在SpringBoot啟動類上指定 dubbo 的掃描路徑

@EnableDubbo(scanBasePackages="com.xxxx.xxxxx")