4-springcloud实现服务消费方直接调用服务提供方

服务消费方直接调用服务提供方

1、创建一个 SpringBoot 工程,并且添加 SpringBoot 的相关依赖; 

2、创建服务提供者的访问方法,也就是后续消费者如何访问提供者; 

Spring Cloud 是基于 rest 的访问,所以我们添加一个 Controller,在该

Controller 中提供一个访问入口:

服务提供方代码:

controller:

@RestController
public class GoodsController {
@Autowired
private GoodsService goodsService;
@GetMapping("/notFound")
public String notFound() {
return " this is demo - notFound -new-2 ";
}
@GetMapping("/getUser")
public ResultObject getUser() {
TblSysuserInfo user = goodsService.getGoodsName();
return new ResultObject(0000, "查询成功", user);
}
}

service:

@Service
public class GoodsServiceImpl implements GoodsService{
@Autowired
TblSysuserInfoMapper tblSysuserInfoMapper;
public TblSysuserInfo getGoodsName() {
return tblSysuserInfoMapper.selectByPrimaryKey("1001");
}
}
@SpringBootApplication
@EnableDiscoveryClient //开启服务注册与发现功能
@MapperScan("com.example.springboot.dao.user.mapper")
public class Demo1ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(Demo1ProviderApplication.class, args);
System.out.println("---------------start success---------------");
}
}

服务消费方代码:

controller:

@RestController
public class GoodsController {
@Autowired
RestTemplate restTemplate;
@Autowired
private GoodsFeignService goodsFeignService;
@GetMapping("/notFound-feign")
public String notFound() {
return goodsFeignService.notFound();
}
@RequestMapping("/cloud/goods")
public ResultObject goods(Model model) {
//调用远程的一个controller, restful的调用
ResponseEntity<ResultObject> responseEntity = restTemplate.getForEntity("http://localhost:8089/getUser", ResultObject.class);
return responseEntity.getBody();
}
}

service:

@SpringBootApplication
@EnableDiscoveryClient //开启服务注册与发现功能
@EnableFeignClients
//@EnableFeignClients(basePackageClasses= GoodsFeignService.class) //开启feign
/**
* 如果消费者的启动类的包是
*
* com.xxx.business,你的feign接口定义包应该是com.xxx.business.feign或com.xxx.business.service,反正一定要在
*
* com.xxx.business这个路径下面,feign才能成功被注入。
*/
public class Demo1ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(Demo1ConsumerApplication.class, args);
System.out.println("-------consume start success------------");
}

@Bean
// @LoadBalanced
RestTemplate restTemplate(){
return new RestTemplate();
}
}

直接调用消费端接口:返回结果

 

 

 

 

 

 


posted on   companion  阅读(110)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示