springboot
文章平均质量分 68
那孩子
这个作者很懒,什么都没留下…
展开
-
Springboot + rabbitMQ实现延迟队列(生产者)
前言:在电商系统中,可能有这样一个需求,订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。如果用常规的定时器定时去查询,这会造成很大的消耗(频繁访问数据库)。这里选择RabbitMQ来实现类似的功能(使用队列的TTL特性)1.这种模式大概流程,我们需要将消息先发送到ttl延迟队列内,当消息到达过期时间后会自动转发到ttl队列内配置的转发Exchange以及RouteKey绑定的...原创 2018-08-29 09:36:02 · 6381 阅读 · 2 评论 -
Springboot + rabbitMQ实现延迟队列(消费者)
由于太长了,所以分成两篇写,接上一篇讲解了消息的定义和发送,这里继续讲解消费者由于可能每条消息所处理的逻辑可能不一样,例如:常规订单30分钟不支付则取消订单,团购订单一天拼团不成功则取消等等,为了避免在消费者监听类中使用大量if else,这里使用策略模式来处理(由于spring的bean的初始化的时候创建,如果用Java常规的反射获取类,则在具体策略类用注入别的bean的时候,会拿不到值,所...原创 2018-08-29 09:36:12 · 2605 阅读 · 0 评论 -
springboot使用@Aspect实现AOP记录日志讲解
AOPAOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。在日常开发当中经常用来记录日志,方法跟踪、事务,权限等切面方法说明: @Aspect -- 作用是把当前类标识为一个切面供容器读取 @Pointcut -- (切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式...原创 2018-08-30 15:31:39 · 10333 阅读 · 3 评论 -
Java 使用Redis实现延时队列
A:需求说明:如果系统中需要用到定时执行计划的,又不想用到中间件,如果轮询数据库的话,会导致大量资源消耗,这样我们就可以使用Redis来实现类似功(需要使用rabbitMQ的请看这里:https://blog.csdn.net/u010096717/article/details/82148681) 业务类型,如订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论,还有排队到...原创 2018-11-06 11:52:34 · 6992 阅读 · 8 评论 -
springboot统一处理异常和自定义异常
在我们做web系统的时候,难免会出现各种各样的异常,但是这种异常,不能直接显示在客户端,所以我们服务端就需要做统一处理,统一返回格式给客户端这里用到了spring的两个注解:@ControllerAdvice---控制器增强和@ExceptionHandler ---异常处理下面来看看具体的实现,建立一个类,加上@ControllerAdvice注解/** * 统一异常处理类 ...原创 2018-12-06 20:27:26 · 4146 阅读 · 0 评论 -
springboot使用注解实现定时器
springboot实现定时作业非常的简单,只需要几个简单的注解就行了1.@EnableScheduling2.@Scheduled @EnableScheduling@Slf4j@Componentpublic class ScheduledTask { @Scheduled(cron="0 0/1 * * * ?") public void testO...原创 2018-12-21 14:27:49 · 8800 阅读 · 0 评论 -
springboot实现线程池--使用@Async实现异步调用
举例场景:当用户支付成功之后,需要马上通知商家(发短信或者语音提示功能等),然后再处理其他业务,如果按照正常逻辑,同步执行,当通知商家这个步骤响应很慢,则后面逻辑就需要等待它执行完毕后才能继续走下去。这样子,我们就可以用线程去异步处理,而我们在项目中,如果直接新建线程,可能会造成很大的开销。所以,优先使用线程池(由于多线程这一块我本人也不是非常的熟悉,有错误请各位大佬提出) 第一步:定义线...原创 2018-12-21 20:34:34 · 1446 阅读 · 0 评论 -
springboot集成Mybatis-plus完整示例
说明:MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。以前项目中经常使用的是mybatis,现在项目中接触到mybatis-plus,个人觉得挺不错的,只需简单配置,即可使用。内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满...原创 2018-12-28 01:16:24 · 3360 阅读 · 0 评论