- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 springboot rabbitmq死信队列与延迟队列实战
死信队列其实也是类似于普通的队列,有交换机、队列、路由等信息,只不过是叫做死信交换机和死信路由以及死信队列,相对特殊了一点,是在正常的队列中绑定了这个特殊的队列的交换机以及路由信息,这样一来正常的队列消息出现特殊的情况下(称为死信消息)可以把这个消息转向这个特殊的队列,即死信队列。死信队列是在普通的队列中新增两个附加参数,即死信交换机和死信路由,那么延迟队列其实实现起来也很简单,由于消息过期不消费也会变成死信,那么在发送消息的时候设置消息过期时间,同时不对该普通队列进行监听消费,那么该消息不就一定会过期变
2021-03-02 09:39:02 577
原创 springboot rabbitmq高可用消息确认消费实战
RabbitMQ的高可用主要体现在消息的发送、传输和接收的过程中,可以保证消息成功发送、不会丢失,以及被确认消费/不重复消费。- 对于消息是否发送成功,主要是针对生产者端的消息生产确认机制;- 对于消息不会丢失,主要是rabbitmq消息持久化机制;- 对于消息确认消费/不重复消费,主要是针对消费者端对消息的确认消费机制。
2021-03-01 09:53:07 838 1
原创 springboot rabbitmq不同交换机类型实战
RabbitMQ常用的交换器类型有fanout、direct、topic、headers这四种,其中headers实际很少用到。fanout:把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。direct:匹配规则相对简单,把消息路由到交换机和路由键RoutingKey绑定的队列中。topic:匹配规则灵活,路由键RoutingKey可使用通配符" * " 和 “ # ”,代表匹配一个单词和任意单词。
2021-03-01 09:47:27 707
原创 springboot rabbitmq入门使用
RabbitMQ作为一款能实现高性能存储分发消息的分布式中间件,具有异步通信、服务解耦、接口限流、消息分发和业务延迟处理等功能,在实际生产环境中具有很广泛的应用。
2021-03-01 09:41:48 362
原创 spring boot 加载配置文件
以下例子代码在github中,代码链接一、加载配置文件值在springboot项目中,配置值可以通过两种方式来设置,一种是配置值写在properties文件中,另一种是写在yaml中。(1)配置值写在properties文件中,读取properties配置值有两种方式,一种是写一个配置类,另一种是注入Environment类来获取。default.properties配置值如下:写一个配置类读取@Configuration@PropertySource(value = {"default
2020-12-06 22:41:53 462
原创 Idea正则表达式一键替换注释,生成@ApiModelProperty(““)
平常日常开发中,返回给前端的vo对象在字段上需要加注释@ApiModelProperty(“xxx”),方便在前端同事在swagger文档看注释,一般我是domain对象生成之后,复制代码到vo对象里,然后再修改Java块注释为前端的注释@ApiModelProperty(“xxx”),那怎么从以下的代码注释转为@ApiModelProperty(“xxx”)注释呢?如果字段很多的话,一个一个写会比较耗时也枯燥,可以用正则表达式一键替。 /** * xxx */(1)doma
2020-12-04 10:00:09 3493 2
原创 模板方法模式&lambda重构模板方法模式
一、概念以及背景模板方法模式(Template Method Pattern):定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。简单来说,当你频繁地需要执行某些操作,这其中的操作有共性,也有差异性的地方,我们可以用模板方法把共性的操作抽取出来,即定义一个操作中算法的“框架”,把差异性的步骤延迟到子类中,即让子类...
2020-03-18 09:38:48 599
原创 责任链模式与lambda重构责任链模式
一、概念以及背景责任链模式(Chain of Responsibility Pattern):责任链模式是一种创建处理对象序列(比如操作序列)的通用方案。一个处理对象可能需要在完成一些工作之后,将结果传递给另一个对象,这个对象接着做一些工作,再转交给下一个处理对象,以此类推。简而言之,待处理的对象,需要经过好几个步骤的处理,形成一条链,一个步骤处理完之后,接着往下一个步骤继续处理。本...
2020-03-10 14:30:57 640
原创 Java8 lambda对Map集合处理的优化
前言:我们假设有这样一个场景,一个电商订单中,有各种优惠券促销活动,比如一个订单有用了店铺优惠券(减100),商品优惠券(减50),满减优惠券(减35),当然优惠券可以叠加,比如这个单有用了两张店铺优惠券,我们需要统计某类优惠券共减去多少金额,处理成一个Map集合,Map集合的键key是优惠券名称,值value是金额。本文涉及的代码在github上,点击 链接 可查看源...
2020-03-07 14:40:33 2182
原创 Debian8 nginx添加阿里云ssl证书,配置https
前言:笔者买了个域名和云服务器,用于学习,本文仅记录下学习过程中的一些收获,如有不足之处,请指正或者提出好的建议。◕‿◕。谢谢。此文是在Debian安装了nginx的基础之上,为服务器配置https,关于如何在Debian安装nginx,这个博主写得蛮不错的:Debian 8 安装Nginx最新版本,关于网站部署https的重要性以及https的一些原理,这个博主也写得蛮不错的:HTTPS证书生...
2020-03-05 10:01:47 1012 1
原创 策略模式&lambda重构策略模式
文章目录一、概念以及背景二、策略模式三、lambda重构策略模式三、拓展Java8提供的内置函数式接口一、概念以及背景策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户端而变化,也称为政策模式(Policy)。简而言之,策略模式是客户端在运行时选择某种解决方案(策略,方法,算法)来解决问题,而解决方...
2020-02-24 09:38:15 723
原创 Java如何避免过多的if else、switch case
前言:最近在开发的过程中,发现代码不优化的话,会出现很多的if else,改成switch case也避免不了代码竖向扩展,感觉蛮冗余的,我的场景是这样的,一个电商平台在淘宝、京东、拼多多、苏宁、小红书等渠道都有店铺,不同的渠道需要对订单进行不同的处理,如果你的场景也是这样的,不妨可以参考一下本文,如果文章有误或者有更好的解决方案,还望指出。本文涉及的代码在github上,点击 链接 可...
2020-02-21 16:19:34 4742
原创 简单工厂设计模式&lambda重构简单工厂模式
概念以及背景简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂...
2020-01-22 16:37:55 413
原创 UML之类图
类图类图简介:类图主要是描述类的属性和类之间的关系,是UML(统一建模语言)一种静态结构图。先用一个简单的类作为例子来描述阐述类图,如下:/** * 顾客类,含有用户昵称name、用户userId、用户密码password * @author Fiuty */public class Customer { private String name; privat...
2020-01-22 16:34:58 297
原创 Java中POJO、BO、DTO、DO对象简述
POJO(Plain Ordinary Java Object):简单对象,专指只有 setter / getter / toString 的简单类,即DO/DTO/BO等领域对象的统称。阿里开发手册规约禁止对象命名成xxxPOJO。DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。xxxDO,xxx为数据表名。DTO( Data T...
2019-11-26 18:10:15 873
原创 java.sql.SQLSyntaxErrorException:ORA-01722:invalid number 异常
bug异常主要信息如下:java.sql.SQLSyntaxErrorException: ORA-01722: invalid number如图所示:先说一下bug的由来,我是用mybatis-plus执行一个删除操作,xxxMapper.deleteById(xxxId),想删除某个id下的一个数据,然后就报错了。{conn-10001, pstmt-20053} execut...
2019-08-16 11:20:47 6289
原创 No validator could be found for constraint 'org.hibernate.constraint.Length'异常
bug异常主要信息如下:javax.validation.UnexpectedTypeException: HV00030: No validator could be found for constraint ‘org.hibernate.constraint.Length’ validating type ‘java.time.LocalDateTime’ . Check configur...
2019-08-16 11:16:27 6078 1
原创 linux抓取某条日志记录的命令
温馨提示:截图可能有点小模糊,勉强可以看到,查看原图可以看得比较清晰一、less命令格式是:less [参数] 文件,假设all-9000-2019-08.0.log是文件名打开日志文件是 less all-9000-2019-08.0.log当我们的日志非常多的时候,想要抓取某一条日志怎么办呢?用斜杆 /xx 来搜索xx关键字的日志:按下回车,发现抓取到了我们输...
2019-08-10 19:44:41 1902
原创 Idea代码模板和自定义代码模板的使用
文章目录1.关于代码模板(Templates)2. 自带代码模板(Live Templates)3.更快捷的代码模板(Postfix Completion)4. 自定义代码模板最近接触到Idea的代码模板和快捷键,发现可以大大减少开发过程中写一些机械化的代码,我们每天都在写代码,有些代码有结构性的相似,可以考虑使用代码模板(template)的方式加快我们的开发速度。这篇文章会先介绍Idea已经...
2019-05-18 09:25:08 1388
原创 制作U盘启动盘,CentOS系统安装
目录一、CentOS下载过程:二、Rufus USB下载链接是:三、制作启动盘的过程:四、设置重装系统电脑的启动引导顺序五、安装CentOS系统笔者以前没重装过系统,大学太懒了,连windows系统也没重装过,公司要用CentOS7作为服务器,让我拿一台旧机重装下Linux系统,今天写下安装步骤,如有坑和不足之处,还望指出。所需要的工具:一个8G的U盘,CentOS.iso镜像,把镜像写入U盘...
2019-05-18 09:20:05 1958
原创 毕业前的记录
毕业前的记录今年七月份毕业,作为一个程序员,大二开通的博客一直没有写博文,准备了八九个月的考研,也考得很一般,技术水平也是一般般。这段时间除了找调剂信息,还得拟补之前落下的一些知识。看视频学习,觉得没有做笔记的话,很多东西长时间没用的话就忘记了,应该整理成博文,好以后需要用到之处可以再回顾一下。不管如何,以后都要在互联网行业发展,或许是一直走技术路线,故用博客记录成长过程。...
2019-03-01 16:25:24 171
http权威指南图灵程序设计丛书.pdf
2019-06-17
centos7系统管理与运维实战.pdf
2019-06-17
Java 8实战.pdf
2019-06-17
阿里巴巴Java开发手册1.4.pdf
2019-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人