1.依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
</dependencies>
2.provider模块
server:
port: 8000
spring:
application:
name: provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1
register-enabled: true
dubbo:
scan:
base-packages: org.example
protocols:
dubbo:
name: dubbo
port: -1
registry:
address: nacos://127.0.0.1:8848
@EnableDubbo
@SpringBootApplication
@EnableDiscoveryClient
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class);
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Product implements Serializable {
private Long id;
private String productName;
}
public interface ProductService {
Product findByPid(Integer pid);
}
- ProductServiceImpl
注意: Service注解是dubbo包下的
@Service
@Component
public class ProductServiceImpl implements ProductService {
@Override
public Product findByPid(Integer pid) {
System.out.println("11111111111111111");
return new Product(1L,"123");
}
}
3.consumer模块
server:
port: 9000
dubbo:
registry:
address: nacos://127.0.0.1:8848
cloud:
subscribed-services: provider
spring:
application:
name: consumer
cloud:
nacos:
discovery:
server-addr: 127.0.0.1
register-enabled: true
- ProductService Product 同上
- Controller
注意: Reference注解是dubbo包下的
@RestController
@Slf4j
public class OrderController {
@Reference
private ProductService productService;
@RequestMapping("/{pid}")
public void order(@PathVariable("pid") Integer pid) {
System.out.println(pid);
Product product = productService.findByPid(pid);
System.out.println(product);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律