(1)引入依赖
org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery
(2) 在application.properties当中添加
# nacos服务地址 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
(3) 在启动类上添加注解 (服务者、调用者都需要注册)
@EnableDiscoveryClient // nacos注册
(4) 启动nacos服务,查看启动状态
(1)引入依赖
org.springframework.cloud spring-cloud-starter-openfeign
(2) 在调用端启动类上添加注解
@EnableFeignClients // 服务调用端
(3) 在调用端创建接口,创建接口用于调用远程接口 (很重要)
@Component
@FeignClient("server-vod") // 设置需要调用的服务端的名称
public interface VodClient {
@DeleteMapping("/vod/video/removeVod/{id}") // 完整路径
public Result removeVod(@PathVariable("id") String id); // @PathVariable("id")必须写
}
– 此方法对应服务端的方法
(4) 服务端controller
@RestController
@RequestMapping("/vod/video")
@CrossOrigin
public class VodController {
@Autowired
VodService vodService;
@DeleteMapping("/removeVod/{id}")
@ApiOperation("删除视频")
public Result removeVod(@PathVariable String id) {
vodService.removeVod(id);
return Result.ok().message("删除成功");
}
}
(5) 在调用端调用接口方法
@Autowired
private VodClient vodClient; // 注入的接口通过远程调用,调用服务端的接口方法
@DeleteMapping("/delete/{id}")
@ApiOperation("删除小节")
public Result delete(@PathVariable String id) {
// 先获取video
Video video = videoService.getById(id);
videoService.removeById(id);
// 删除小节的同时,需要把里面的视频也删除,需要用到服务端的接口方法
if (!StringUtils.isEmpty(video.getVideoSourceId())) {
vodClient.removeVod(video.getVideoSourceId());
}
return Result.ok().message("删除小节成功!");
}



