前言:咱们在使用dubbo的时候,习惯性配置的就是xml,咱们还能够根据java代码进行配置,话很少说,看下面的代码java
1.提供者的java配置 缓存
import com.alibaba.dubbo.rpc.config.ApplicationConfig; import com.alibaba.dubbo.rpc.config.RegistryConfig; import com.alibaba.dubbo.rpc.config.ProviderConfig; import com.alibaba.dubbo.rpc.config.ServiceConfig; import com.xxx.XxxService; import com.xxx.XxxServiceImpl; // 服务的实现 XxxService xxxService = new XxxServiceImpl(); // 应用信息 ApplicationConfig application = new ApplicationConfig(); application.setName("xxx"); //注册信息 RegistryConfig registry = new RegistryConfig(); registry.setAddress("10.20.130.230:9090"); registry.setUsername("aaa"); registry.setPassword("bbb"); // 用dubbo协议在20880端口暴露服务 ProtocolConfig protocol = new ProtocolConfig(); protocol.setName("dubbo"); protocol.setPort(20880); protocol.setThreads(200); // 注意:ServiceConfig保存serversocket实例并保持链接到registry,请将其缓存以得到性能。 // 导入配置 ServiceConfig<XxxService> service = new ServiceConfig<XxxService>(); service.setApplication(application); service.setRegistry(registry); // Use setRegistries() for multi-registry case service.setProtocol(protocol); // Use setProtocols() for multi-protocol case service.setInterface(XxxService.class); service.setRef(xxxService); service.setVersion("1.0.0"); // 执行配置 service.export();
2.消费者app
import com.alibaba.dubbo.rpc.config.ApplicationConfig; import com.alibaba.dubbo.rpc.config.RegistryConfig; import com.alibaba.dubbo.rpc.config.ConsumerConfig; import com.alibaba.dubbo.rpc.config.ReferenceConfig; import com.xxx.XxxService; // 应用信息 ApplicationConfig application = new ApplicationConfig(); application.setName("yyy"); // 注册中心发现 RegistryConfig registry = new RegistryConfig(); registry.setAddress("10.20.130.230:9090"); registry.setUsername("aaa"); registry.setPassword("bbb"); // 注释:ReferenceConfig保持与注册中心和提供者的链接,请将其缓存以得到性能。 // 引用远程服务 ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); // In case of memory leak, please cache. reference.setApplication(application); reference.setRegistry(registry); reference.setInterface(XxxService.class); reference.setVersion("1.0.0"); // 使用 xxxService 做为一个bean XxxService xxxService = reference.get(); // NOTES: Please cache this proxy instance.
不过官方仍是推荐xml的配置方式进行配置,由于可拓展性比较强。socket