导入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8080/eureka/
server:
port: 8777
spring:
application:
name: order-fgin
service调用注册中心其他项目的接口:
@FeignClient(value="service-member")
public interface MemberService {
@RequestMapping("/getMember")
public String getMember();
}
controller调用service
@RestController
public class FeignController {
@Autowired
private MemberService memberService;
@RequestMapping("/getMember")
public String getMember() {
System.out.println("feign调用member");
return memberService.getMember();
}
}
启动器:
@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
GetMapping 和 PostMapping :
通过浏览器的地址栏输入地址,所访问的URL都是get请求,因此如果以post定义方法,那么由于请求与实现的不一致,会返回405错误,method not allowed, The specified HTTP method is not allowed for the requested resource.
这归根到底是因为浏览器发送了get请求,而方法只能处理post请求,所以发生的错误
如果想用浏览器做post的测试,那么就下一个chrome的postman插件,完美解决你的问题
@RequestMapping @ResponseBody 和 @RequestBody:
@PathVariable绑定URI模板变量值
@RequestParam绑定单个请求参数值
@RequestHeader绑定请求头数据
@RequestBody 绑定对象数据