Springboot 内部服务调用方式
作者:Kings菜鸟 时间:2023-08-24 00:32:20
Eureka注册的服务之间互相调用
1.请求方
启动类添加注解,扫描Eureka 中的全部服务
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class LoginServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(LoginServiceApplication.class).web(true).run(args);
}
}
pom.xml 添加包 (版本号 根据实际选择)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
创建接口类
@FeignClient(name="hello-service") //spring service name
public interface FeignVehicle {
@RequestMapping(value="/hello", method = RequestMethod.GET)
@ResponseBody
public List<Map> hello(@RequestParam Map<String,String> params);
}
实现类注入此接口类
@Autowired
FeignVehicle feignVehicle;
使用的时候直接按照正常调用方式即可
Map<String,String> map = new HashMap<String, String>();
feignVehicle.hello(map);
跨服务调用的时候出现token信息取不到,在发送方添加 *
@Configuration
public class FeignConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest(); //当前服务token
template.header("Authorization","Bearer " + request.getSession().getId()); //template 接收请求方token
}
};
}
}
2.接收方
请求 启动类
@SpringBootApplication
@EnableEurekaClient
public class HelloServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(HelloServiceApplication.class).web(true).run(args);
}
}
请求Controller
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping(value="/hello",method = RequestMethod.GET)
@ResponseBody
public List<Map> hello(@RequestParam Map<String, String> queryParam) {
return null;
}
}
多模块化,服务间调用的坑
问题背景
product
服务作为服务端,提供了一个 对外通信Fegin接口 ProductClient,放在了com.imooc.product.client jar包下order
服务作为客户端,直接引用上面的jar,使用 ProductClient ,启动主类后报下图错误:
解决办法
多模块化时,应该在order主类上添加下面圈出来的注解,这样启动后就能扫描这个包。
来源:https://blog.csdn.net/purple25/article/details/88691740
标签:Springboot,内部服务,调用
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot超详细讲解@Value注解
2022-03-06 12:05:36
SpringCloud实现灰度发布的方法步骤
2023-03-17 05:18:37
![](https://img.aspxhome.com/file/2023/6/83566_0s.png)
Java日志框架之logback使用详解
2022-02-18 05:33:47
宝塔面板配置及部署javaweb教程(全网最全)
2023-11-10 15:26:27
![](https://img.aspxhome.com/file/2023/5/58905_0s.jpg)
C语言实现矩阵运算案例详解
2023-08-03 12:15:14
![](https://img.aspxhome.com/file/2023/4/94604_0s.png)
Spring通过<import>标签导入外部配置文件
2023-03-04 06:43:58
Android studio利用gradle打jar包并混淆的方法详解
2021-07-07 06:22:57
Android使用ViewPager实现图片滑动预览效果
2023-02-15 15:28:28
![](https://img.aspxhome.com/file/2023/9/88689_0s.jpg)
C++ 继承,虚继承(内存结构)详解
2023-09-05 21:28:01
![](https://img.aspxhome.com/file/2023/8/120808_0s.png)
java中Path和ClassPath用法比较
2022-03-15 03:41:26
Android使用Service实现简单音乐播放实例
2023-11-30 20:03:23
![](https://img.aspxhome.com/file/2023/2/138422_0s.png)
Android音视频开发只硬件解码组件MediaCodec讲解
2023-08-20 10:33:20
![](https://img.aspxhome.com/file/2023/2/130332_0s.png)
详解Android中点击事件的几种实现方式
2022-07-03 09:05:09
C#判断ip地址是否可以ping的通
2021-08-29 10:53:13
Android UI设计系列之ImageView实现ProgressBar旋转效果(1)
2021-06-07 11:08:21
![](https://img.aspxhome.com/file/2023/5/138655_0s.png)
教你怎么用SpringBoot+Mybati-Plus快速搭建代码
2023-08-07 12:42:10
![](https://img.aspxhome.com/file/2023/1/58081_0s.png)
Springboot打包部署修改配置文件的方法
2022-12-20 11:59:58
![](https://img.aspxhome.com/file/2023/0/132100_0s.png)
WinForm实现最小化到系统托盘方法实例详解
2023-10-05 05:53:30
java实现MD5加密的方法小结
2022-02-26 20:01:47
Android中TabLayout结合ViewPager实现页面切换
2022-11-01 18:24:10
![](https://img.aspxhome.com/file/2023/9/123239_0s.jpg)