商务网站开发公司,2021网页qq登陆,一般什么行业做网站的多,怎样做一元购网站1. 项目结构假设项目分为三个模块#xff1a;api#xff1a;定义服务接口provider#xff1a;服务提供者consumer#xff1a;服务消费者2. 依赖配置在 pom.xml 中添加 Dubbo 和注册中心#xff08;如 Nacos#xff09;的依赖#xff1a;dependencygroupIdapi定义服务接口provider服务提供者consumer服务消费者2. 依赖配置在 pom.xml 中添加 Dubbo 和注册中心如 Nacos的依赖
dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion3.0.2/version
/dependency
dependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactIdversion2.0.3/version
/dependency3. 定义服务接口api 模块创建一个服务接口
package com.example.api;public interface HelloService {String sayHello(String name);
}4. 服务提供者provider 模块4.1 实现服务接口
package com.example.provider;import com.example.api.HelloService;
import org.apache.dubbo.config.annotation.Service;Service(version 1.0.0)
public class HelloServiceImpl implements HelloService {Overridepublic String sayHello(String name) {return Hello, name;}
}4.2 配置 Dubbo在 application.properties 中配置 Dubbo 和注册中心properties
dubbo.application.namehello-service-provider
dubbo.registry.addressnacos://127.0.0.1:8848
dubbo.protocol.namedubbo
dubbo.protocol.port208805. 服务消费者consumer 模块5.1 引用服务接口在 application.properties 中配置 Dubbo 和注册中心properties
dubbo.application.namehello-service-consumer
dubbo.registry.addressnacos://127.0.0.1:88485.2 调用服务
package com.example.consumer;import com.example.api.HelloService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
public class HelloController {Reference(version 1.0.0)private HelloService helloService;GetMapping(/sayHello)public String sayHello(RequestParam String name) {return helloService.sayHello(name);}
}6. 启动项目启动 Nacos 注册中心。启动服务提供者模块provider。启动服务消费者模块consumer。访问 http://localhost:8080/sayHello?nameKimi即可看到返回结果。7. 泛化调用示例可选如果需要泛化调用可以在消费者端使用 GenericService
package com.example.consumer;import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.rpc.service.GenericService;public class GenericConsumer {public static void main(String[] args) {ReferenceConfigGenericService reference new ReferenceConfig();reference.setInterface(com.example.api.HelloService);reference.setGeneric(true);GenericService genericService reference.get();String result genericService.$invoke(sayHello, new String[]{java.lang.String}, new Object[]{Kimi});System.out.println(result);}
}泛化调用不需要提前知道服务接口的具体定义。通过以上步骤可以实现一个完整的 Dubbo 服务调用案例