当前位置: 首页 > news >正文

网站蜘蛛抓取网页设计与制作课程内容

网站蜘蛛抓取,网页设计与制作课程内容,最新新闻热点事件摘抄11月,培训师资格证怎么考Spring-Retry框架是Spring自带的功能#xff0c;具备间隔重试、包含异常、排除异常、控制重试频率等特点#xff0c;是项目开发中很实用的一种框架。 1、引入依赖 坑点#xff1a;需要引入AOP#xff0c;否则会抛异常。 xml !-- Spring-Retry -- dependency具备间隔重试、包含异常、排除异常、控制重试频率等特点是项目开发中很实用的一种框架。 1、引入依赖 坑点需要引入AOP否则会抛异常。 xml !-- Spring-Retry -- dependency groupIdorg.springframework.retry/groupId artifactIdspring-retry/artifactId /dependency !-- Spring-AOP -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-aop/artifactId /dependency 2、启动类注解 坑点很容易一时疏忽忘记启动类开启EnableRetry大家别忘了哦。 java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.retry.annotation.EnableRetry; SpringBootApplication EnableRetry public class SpringRetryDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringRetryDemoApplication.class, args); } } 3、模拟发短信 我们模拟一个发短信功能根据随机数分别作为成功、失败、抛出各种异常的入口。 这里抛出几种异常的目的是为了后面演示出重试注解参数产生的效果。 java import cn.hutool.core.util.RandomUtil; import lombok.extern.slf4j.Slf4j; /** * p * 短信服务工具类 * /p * */ Slf4j public class SmsUtil { /** * 发送短信 */ public static boolean sendSms() { // 使用随机数模拟重试场景 int num RandomUtil.randomInt(4); log.info([SmsUtil][sendSms] random num {}, num); return switch (num) { case 0 - // 模拟发生参数异常 throw new IllegalArgumentException(参数有误); case 1 - // 模拟发生数组越界异常 throw new ArrayIndexOutOfBoundsException(数组越界); case 2 - // 模拟成功 true; case 3 - // 模拟发生空指针界异常 throw new NullPointerException(); default - // 未成功则返回false false; }; } } 4、Retry应用 我们单独写一个用于重试调用的组件类用于业务类调用。 java import com.example.springretrydemo.util.SmsUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * p * 重试组件 * /p * */ Slf4j Component public class RetryComponent { /** * 重试机制发送短信 */ Retryable( retryFor {IllegalArgumentException.class, ArrayIndexOutOfBoundsException.class}, noRetryFor {NullPointerException.class}, maxAttempts 4, backoff Backoff(delay 2000L, multiplier 2) ) public boolean sendSmsRetry() { log.info([RetryComponent][sendSmsRetry] 当前时间{}, getNowTime()); return SmsUtil.sendSms(); } /** * 兜底方法规则 * 1、超出了最大重试次数 * 2、抛出了不进行重试的异常 */ Recover public boolean recover() { log.info([RetryComponent][recover] 短信发送次数过多请稍后重试); return false; } /** * 获取当前时间 */ private String getNowTime() { return LocalDateTime.now().format(DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss)); } } Retryable注解参数说明 Recover注解说明用于兜底当 超出了最大重试次数 或 抛出了不进行重试的异常 时直接执行该注解声明的兜底方法。 总结 Spring-retry框架还是挺实用的但不是万能的。 所以使用这个框架一定要明确好场景再使用我这里不推荐复杂场景下使用因为君子不立于危墙之下。 最后说一句(求关注!别白嫖) 如果这篇文章对您有所帮助或者有所启发的话求一键三连点赞、转发、在看。 关注公众号woniuxgg在公众号中回复笔记  就可以获得蜗牛为你精心准备的java实战语雀笔记回复面试、开发手册、有超赞的粉丝福利
http://www.hkea.cn/news/14384926/

相关文章:

  • 网站型与商城型有什么区别吗宁波市建设厅网站首页
  • 网站设计拓扑图微网站建设 上海
  • 轮网站开发的重要性公共资源交易网招标信息
  • 如何增加网站流量网站开发新技术探索
  • 苏州公司网站建站页面设计代码
  • 个人免费网站空间百度wordpress出名的网站
  • 东莞市官网网站建设公司凡科网网站建设
  • 设计网站官网有哪些深圳建站公司的小技巧
  • 国家电力安全网站两学一做网络空间安全和信息安全的区别
  • html嵌入网站wordpress study
  • idc网站模板安徽省建设工程信息网官方网站
  • 在网站上做承诺wordpress忘了密码
  • 整站网站优化神农架网站设计
  • 海纳企业网站管理系统郑州网站设计制作哪家好
  • 2016市网站建设总结中国互联网协会卢卫
  • 公司的网站建设一般需要多少费用wordpress填表
  • 删除wordpress谷歌优化软件
  • 电子商务网站建设的基本流程网络服务器图片
  • 网站开发定制推广杭州seo基础教程使用
  • 怎么做酒店网站网站开发的大致流程
  • 大连网页建站模板怎样建设那种游戏网站
  • 浙江短视频seo优化网站如何开跨境电商店铺
  • 网站改版意义北京网站搭建公司电话
  • 网站建设与管理教学视频什么是网络营销中最古老的一种但也是目前应用最广泛的
  • 网站备案 godaddy提供秦皇岛网站建设哪家好
  • 做网站语言自己家的电脑做网站需要备案没
  • 蚌埠建设学校网站营销说白了就是干什么的
  • 贷款织梦网站模板wordpress 干净主题
  • 个人网站怎么做微商企业网站 开源
  • 手游超变传奇网站发布网网站建设 推神网络