记一次Feign中实现传实体Bean的问题
作者:听风动
这篇文章主要介绍了记一次Feign中如何传实体Bean的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Feign如何传实体Bean
需要加一个@RequestBody序列化对象
/** * 新增 */ @PostMapping("saveOrder") @ResponseBody public void saveOrder(@RequestBody OrderBean orderBean) { userService.saveOrder(orderBean); }
接口接收请求也要加一个@RequestBody注解
/** * 新增 * @param orderBean */ @PostMapping("saveOrder") public void saveOrder(@RequestBody OrderBean orderBean);
Feign注入Bean为null,启动报错
主要是feign版本和swagger版本冲突,本项目spring cloud 版本为 Finchley.M8
swagger冲突版本
<!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.2.2</version> </dependency>
解决方案
<!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency>
feign Service案例
@FeignClient(name = "service-weixin",fallback = OAuthServiceFallBack.class, configuration = FeignConfig.class) public interface OAuthService { @RequestMapping(value = "/oauth/getOauth2AuthorizationUrl", method = RequestMethod.GET) ResultBean<String> getOauth2AuthorizationUrl(@RequestParam("url")String url); }
controller注入
@RestController @RequestMapping("/ticket") public class TicketController { @Autowired private TicketService ticketService; @Autowired private OAuthService oAuthService; ...
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。