idea构建post请求_基于idea的springcloud的helloworld项目搭建过程整理

本文详细介绍了如何在IDEA中搭建SpringCloud项目,包括创建服务注册中心、服务提供者和服务消费者。在服务提供者中,详细讲解了GET和POST请求的实现,而在服务消费者部分,展示了如何使用Feign进行服务调用。通过这篇文章,读者可以了解到SpringCloud微服务架构中的关键组件和API使用。
摘要由CSDN通过智能技术生成

Springcloud的搭建主要包括三个部分:服务注册中心、服务提供者、服务消费者。每一个部分都是一个springboot项目,它们通过配置文件(application.properties或application.yml)关联在一起。

一、创建服务注册中心

1、 按照如下过程依次操作

2、 在application.properties中填写如下内容,声明本服务是一个注册中心

server.port:7770

eureka.instance.hostname:localhost

#一下两行表明本服务是一个注册中心,而非服务提供或者消费方

eureka.client.registerWithEureka: false

eureka.client.fetchRegistry: false#服务注册到哪里

eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

#本服务的名称

spring.application.name: eurka-server

3、 在启动类上面添加@EnableEurekaServer注解即可

4、 启动服务即可,注意服务端口是application.properties中配置的server.port

二、创建服务提供者

1、 类似注册中心创建springboot,只是以下这个地方有些不同。

2、 在application.properties中进行注册信息的配置

#本服务端口号

server.port: 7771

#本服务名

spring.application.name: hello-springcloud-service

#注册中心的地址

eureka.client.serviceUrl.defaultZone: http://localhost:7770/eureka/

注:服务名可以重复,会认为是同一个服务,负载均衡使用

3、 在启动类上面添加@EnableEurekaClient注解

4、 创建VO,用于接收参数

1) VO类的属性名要与参数名完全一致

2) 提供setter/getter方法

3)Get和Post接收的vo不要共用一个,最好分着设计

5、 创建Controller

1) 本质上就是ssh中创建controller一样,注解使用@RestController

2) 写出这个请求是get还是post请求

3) 返回值类型可以是字符串或者map、List等类型都是可以的

4) 参数注意事项

A) 如果是get请求,可以使用VO这个pojo类接收,也可以通过“类型 参数名”这种方式接收(普通类型的参数接收而已)。

最正规的方式是:@RequestParam(“参数名”) 类型 参数名这种方式。

B) 如果是post请求,必须使用VO这个pojo类的方式接收,由于传递的是json字符串,所以必须使用@RequestBody修饰。而且,只能有一个@RequestBody。

例如:@RequestBody PoJo类 pojo类的对象

此外,如果请求中除了一个json字符串以外,还有其他参数,那么json字符串用@RequestBody的方式接收,而其余参数参考get的方式接收即可。

5) 该Controller不仅可以作为其他服务的提供者,也可以直接通过前端请求。只是注意post请求的特殊处理。

packagecom.lennar.serviceprovider.controller;

importcom.lennar.serviceprovider.vo.GetVO;

importcom.lennar.serviceprovider.vo.HelloWorldTestVO;

importorg.springframework.beans.factory.annotation.Value;

importorg.springframework.web.bind.annotation.*;

importjava.util.ArrayList;

importjava.util.HashMap;

importjava.util.List;

importjava.util.Map;

@RestController

public classMyController{

@Value("${server.port}")

Stringport;//负载均衡的时候便于打印识别是哪个服务(端口不同,服务不同)

//1.get请求

//1.1.返回字符串

@RequestMapping(value = "/test/getMethod1", method = RequestMethod.GET)

publicStringgetMethod1(GetVOgetVO) {

return"get-字符串(RequestMapping):hello " + getVO.getStudentName() + " ,I am from

port:" + port;

}

//

public String getMethod1(@RequestParam(value = "studentName")

String name) {

//        return "get-字符串(RequestMapping):hello " + name + " ,I am from port:" + port;

//    }

@GetMapping(value = "/test/getMethod2")

publicStringgetMethod2(@RequestParam(value = "studentName") Stringname) {

return"get-字符串(GetMapping):hello

" + name + "

,I am from port:" + port;

}

//1.2.返回Map

@RequestMapping(value = "/test/getMethod3", method = RequestMethod.GET)

publicMap getMethod3(@RequestParam(value = "studentName") Stringname) {

Map map = newHashMap<>();

map.put("resultMessage", "get-Map(RequestMapping):hello " + name

+ " ,I am from port:" + port);

returnmap;

}

@GetMapping(value = "/test/getMethod4")

publicMap getMethod4(@RequestParam(value = "studentName") Stringname) {

Map map = newHashMap<>();

map.p

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值