springCloud使用RestTemplate调用微服务

服务消费者

1.引入jar包

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.archaius</groupId>
            <artifactId>archaius-core</artifactId>
            <version>0.7.6</version>
        </dependency>

如果只引入第一个jar包,调用的时候会报错

2.修改启动类

@EnableDiscoveryClient
public class LightassetmanApplication {

    public static void main(String[] args) {
        SpringApplication.run(LightassetmanApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return  new RestTemplate();
    }
}
我只把新加的注解写上去了

3.服务调用

@Autowired
private RestTemplate template;

不传参数

boolean flag1=template.getForObject("http://lightfrontabt/GZILSystem/gzilMan/taskDual/isCacheRunning",Boolean.class);

简单参数

String msg = template.getForObject("http://lightfrontabt/GZILSystem/gzilMan/taskDual/test"+ "?name={name}", String.class,name);

复杂参数

            short funccode=(short)171;
            MultiValueMap params=new LinkedMultiValueMap();
            params.addAll("tmnlAssetNos", tmnlAssetNos);
            params.add("funccode", funccode);
            params.addAll("paramItems", paramItems);
            String url="http://lightfrontabt/GZILSystem/gzilMan/taskDual/qetTermParamTaskResult";
            taskId = template.postForObject(url,params, Long.class);

切记,这里面传过去的都是list

服务提供者

1.接收参数

    @RequestMapping("/qetTermParamTaskResult")
    public long qetTermParamTaskResult(@RequestParam MultiValueMap params) {
        List tmnlAssetNos= (List) params.get("tmnlAssetNos");
        List<ParamItem> paramItems= (List<ParamItem>) params.get("paramItems");
        List funccodes=(List)params.get("funccode");
        Short funccode=Short.parseShort(funccodes.get(0).toString());
    }

其他的不许配置,这是比较简单的调用方式

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值