自定义的spring-boot的dubbox starter,为spring-boot相关的项目使用dubbox提供简易的方式并集成spring-boot的auto configuration
修改相关的maven私服地址
gradle clean install uploadArchives
compile "jthink:spring-boot-starter-dubbox:0.0.1"
在spring-boot项目的application.properties文件中加入相关的配置项,并赋予正确的值
- spring.service.dubbo.registry.name=xxx
- spring.service.dubbo.registry.address=ip1:2181,ip2:2181,ip3:2181
- spring.service.dubbo.registry.check=true
- spring.service.dubbo.registry.register=true
- spring.service.dubbo.registry.protocol=zookeeper
- spring.service.dubbo.registry.retries=0
- spring.service.dubbo.registry.timeout=60000
- spring.service.dubbo.registry.protocolName=dubbo
- spring.service.dubbo.registry.payload=10485760
- 将上述配置项赋予正确的值
- 接口定义
public interface ServiceE {
public String invokeE();
}
- 服务实现
@Service
public class ServiceEImpl implements ServiceE {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceEImpl.class);
@Override
public String invokeE() {
LOGGER.info("调用服务E");
return "E";
}
}
- 暴露服务
@Configuration
public class DubboConfiguration {
@Autowired
private DubboService dubboService;
@Autowired
private ServiceE serviceEImpl;
@PostConstruct
public void exportDubboService() {
this.dubboService.export(ServiceE.class, this.serviceEImpl);
}
}
- 将上述配置项赋予正确的值(最后两项配置项无需配置)
- 服务引用
@Configuration
public class DubboConfiguration {
@Autowired
private DubboService dubboService;
@Bean
public ServiceE serviceE() {
return this.dubboService.get(ServiceE.class);
}
}
- 服务调用
@Service
public class ServiceCImpl implements ServiceC {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceCImpl.class);
@Autowired
private ServiceE serviceE;
@Override
public String invokeC() {
LOGGER.info("调用服务E");
return this.serviceE.invokeE();
}
}