项目结构

dubbo学习笔记二(服务调用) 随笔 第1张

代码示例

由于之前的IEchoService 的一个方法只是在服务端控制台打印,不便在浏览器测试,所以新添加的方法

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

api和服务端代码变更

public interface IEchoService {
    void echo();

    String echo(String msg);
}
@Service
public class EchoServiceImpl implements IEchoService {
    public void echo() {
        System.out.printf("hello");
    }

    public String echo(String msg) {
        return "echo: " + msg;
    }
}

客户端代码

  • [ClientService]
@Service
public class ClientService {
    @Reference
    private IEchoService echoService;

    public String echo(String msg) {
        return echoService.echo(msg);
    }
}
  • [EchoTestApp]
@RestController
@SpringBootApplication
public class EchoTestApp {
    @Autowired
    private ClientService clientService;

    @GetMapping("/hi/{name}")
    public String hello(@PathVariable(name = "name") String name) {
        return clientService.echo(name);

    }

    public static void main(String[] args) {
        System.getProperties().put("server.port", 7070);
        SpringApplication.run(EchoTestApp.class, args);
    }

    @Configuration
    @EnableDubbo(scanBasePackages = "consumer")
    @PropertySource("classpath:/dubbo-consumer.properties")
    static public class ConsumerConfiguration {

    }
}
  • [dubbo-consumer.properties]
# dubbo-consumer.properties
dubbo.application.name=annotation-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.consumer.timeout=3000

浏览器访问

dubbo学习笔记二(服务调用) 随笔 第2张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄