在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求。针对这一需求以前的做法就是访问外部请求都要经过httpClient 需要专门写一个方法,来发送http请求,这个就不说了,网上一搜全都是现成的方法。springboot 实现外部http请求 是通过FeignClient来请求http数据的,特别简单并且非常实用的一个注解就可以搞定。
采用Feign进行消费
第一步:在maven项目中添加依赖
org.springframework.cloud
spring-cloud-starter-openfeign
2.0.2.RELEASE
第二步:编写接口,放置在service层
@FeignClient(url="${crm.server.url}",name="crmServer")
public interface naturalVisitCustomerService {
@RequestMapping(value = "/view/naturalVisit/addNaturalVisitCustomer",method = RequestMethod.POST)
public JSONObject saveCustomer(@RequestParam("customerName") String customerName, @RequestParam("customerPhone") String customerPhone,
@RequestParam("source") String source, @RequestParam("intention") String intention);
}
这里的crm.server.url 是配置在properties配置文件中的 结构是ip地址和端口号
crm.server.url = https://devcrm.yijia.com:5555
/view/naturalVisit/addNaturalVisitCustomer 是接口名字
第三步:要在启动的java类上加 @EnableFeignClients这个注解
@SpringBootApplication(exclude = PageHelperAutoConfiguration.class)
@MapperScan("com.yijia.website.module.*.dao")
@EnableTransactionManagement
@EnableCaching
@EnableRedisHttpSession
@EnableFeignClients
public class CmsApplication {
public static void main(String[] args){
SpringApplication.run(CmsApplication.class, args);
}
}
第四步:在需要调用的地方调用刚刚写的接口
@ResponseBody
@RequestMapping("/saveQuote")
public String saveQuoteInfo(Quote quote){
quote.setCreateTime(new Date());
if (quote.getQuoteId() != null){
return quoteService.updateQuote(quote);
}
addCustomerToCRM(quote);
return quoteService.saveQuote(quote);
}
// 新加入的方法,专门用于调用刚刚写的放入到service层的接口
private void addCustomerToCRM(Quote quote) {
String customerName = Optional
.ofNullable(quote.getCustomerName())
.orElse("自然到访客户");
try{
JSONObject result = naturalVisitCustomerService.saveCustomer(customerName, quote.getCustomerPhone(), CmsConst.SITE, CmsConst.CONSUMER);
log.info("自然到访客户接口 保存客户 结果 === {}",result.toString());
}catch (Exception e){
log.error("自然到访客户接口 保存客户 异常 === {}",e.getMessage());
}
}
参考文献
spring boot 访问外部http请求
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: CCF 习题 201604-4 游戏 (BFS — 三维vis数组)
大体题意: 求从左上角到右下角的最短时间,每一个位置有一段危险时间,在危险时间内,你不能到达这个位置! 思路: 直接bfs即可! 因为样例分析出来,这个是可以走回头路的! 所以普通的vis数组 只记录坐标肯定是行不通的,但如果不用vis数组,能过的样例太少了…