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();
}
}
直接调用消费端接口:返回结果
分类:
SpringCloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理