[Spring cloud 一步步实现广告系统] 10. Ribbon 服务调用
在使用Ribbon调用广告投放系统API之前,我们需要先创建2个VO对象,AdPlanVO
,AdPlanGetRequestVO
.
//数据请求对象 @Data @NoArgsConstructor @AllArgsConstructor public class AdPlanGetRequestVO { private Long userId; private List<Long> planIds; } ---------------------------------- //API请求响应结果反序列化对象 @Data @AllArgsConstructor @NoArgsConstructor public class AdPlanVO { private Long planId; private Long userId; private String planName; private Integer planStatus; private Date startDate; private Date endDate; private Date createTime; private Date updateTime; }
在AdSearchApplication
启动类中,添加RestTemplate
客户端。
public class AdSearchApplication { ... /** * 注册{@link RestTemplate}Bean * @return */ @Bean @LoadBalanced //让RestTemplate在调用服务的时候,可以实现负载均衡 RestTemplate restTemplate(){ return new RestTemplate(); } }
创建一个controller,来测试调用广告提供系统的API
/** * SearchController for search information controller * * @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang | 若初</a> */ @RestController @Slf4j @RequestMapping(path = "/search") public class SearchController { //注入RestTemplate private final RestTemplate restTemplate; @Autowired public SearchController(RestTemplate restTemplate) { this.restTemplate = restTemplate; } @GetMapping(path = "/plan/get-ribbon") public CommonResponse<List<AdPlanVO>> getAdPlansUseRibbon(@RequestBody AdPlanGetRequestVO requestVO) { log.info("ad-search::getAdPlansUseRibbon -> {}", JSON.toJSONString(requestVO)); return restTemplate.postForEntity( "http://mscx-ad-sponsor/ad-sponsor/plan/get", requestVO, CommonResponse.class ).getBody(); } @GetMapping(path = "/user/get") public CommonResponse getUsers(@Param(value = "username") String username) { log.info("ad-search::getUsers -> {}", JSON.toJSONString(username)); CommonResponse commonResponse = restTemplate.getForObject( "http://mscx-ad-sponsor/ad-sponsor/user/get?username={username}", CommonResponse.class, username ); return commonResponse; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
[Spring cloud 一步步实现广告系统] 6. Service&Zuul配置
DAO层设计实现 这里我们使用Spring DATA JPA来实现数据库操作,当然大家也可以使用Mybatis,都是一样的,我们依然以用户表操作为例: /** * AdUserRepository for 用户数据库操作接口 * 继承自JpaRepository<AdUser, Long>,第一个参数AdUser代表当前要操作的实体类的class定义,第二个参数Long表示该类的主键类型 * * @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang</a> */ public interface AdUserRepository extends JpaRepository<AdUser, Long> { /** * 根据用户名称获取用户 * * @param username 名称 * @return 用户对象 */ AdUser findByUserName(String username); List<AdUser> findAllByUserName(S...
- 下一篇
Arthas 手动触发生产定时任务的危险操作
背景 最近来了个实习僧小弟,安排他实现对目标网站 连通性检测的小功能,简单讲就是将下边的shell 脚本换成Java 代码来实现 #!/bin/bash URL="https://www.baidu" HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"` #echo $HTTP_CODE if [ $HTTP_CODE != '200' ];then curl 'https://oapi.dingtalk.com/robot/send?access_token=xx' \ -H 'Content-Type: application/json' \ -d '{"msgtype": "text", "text": { "content": "百度平台状态不正常,请注意!" }, "isAtAll": true }' fi 功能实现 使用spring task @Scheduled(cron = "0 0 0/1 * * ? ") public void startSchedule() { log.info("开始执行定时任务...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6