自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 springboot rabbitmq死信队列与延迟队列实战

死信队列其实也是类似于普通的队列,有交换机、队列、路由等信息,只不过是叫做死信交换机和死信路由以及死信队列,相对特殊了一点,是在正常的队列中绑定了这个特殊的队列的交换机以及路由信息,这样一来正常的队列消息出现特殊的情况下(称为死信消息)可以把这个消息转向这个特殊的队列,即死信队列。死信队列是在普通的队列中新增两个附加参数,即死信交换机和死信路由,那么延迟队列其实实现起来也很简单,由于消息过期不消费也会变成死信,那么在发送消息的时候设置消息过期时间,同时不对该普通队列进行监听消费,那么该消息不就一定会过期变

2021-03-02 09:39:02 484

原创 springboot rabbitmq高可用消息确认消费实战

RabbitMQ的高可用主要体现在消息的发送、传输和接收的过程中,可以保证消息成功发送、不会丢失,以及被确认消费/不重复消费。- 对于消息是否发送成功,主要是针对生产者端的消息生产确认机制;- 对于消息不会丢失,主要是rabbitmq消息持久化机制;- 对于消息确认消费/不重复消费,主要是针对消费者端对消息的确认消费机制。

2021-03-01 09:53:07 761 1

原创 springboot rabbitmq不同交换机类型实战

RabbitMQ常用的交换器类型有fanout、direct、topic、headers这四种,其中headers实际很少用到。fanout:把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。direct:匹配规则相对简单,把消息路由到交换机和路由键RoutingKey绑定的队列中。topic:匹配规则灵活,路由键RoutingKey可使用通配符" * " 和 “ # ”,代表匹配一个单词和任意单词。

2021-03-01 09:47:27 463

原创 springboot rabbitmq入门使用

RabbitMQ作为一款能实现高性能存储分发消息的分布式中间件,具有异步通信、服务解耦、接口限流、消息分发和业务延迟处理等功能,在实际生产环境中具有很广泛的应用。

2021-03-01 09:41:48 279

原创 spring boot 加载配置文件

以下例子代码在github中,代码链接一、加载配置文件值在springboot项目中,配置值可以通过两种方式来设置,一种是配置值写在properties文件中,另一种是写在yaml中。(1)配置值写在properties文件中,读取properties配置值有两种方式,一种是写一个配置类,另一种是注入Environment类来获取。default.properties配置值如下:写一个配置类读取@Configuration@PropertySource(value = {"default

2020-12-06 22:41:53 420

原创 Idea正则表达式一键替换注释,生成@ApiModelProperty(““)

平常日常开发中,返回给前端的vo对象在字段上需要加注释@ApiModelProperty(“xxx”),方便在前端同事在swagger文档看注释,一般我是domain对象生成之后,复制代码到vo对象里,然后再修改Java块注释为前端的注释@ApiModelProperty(“xxx”),那怎么从以下的代码注释转为@ApiModelProperty(“xxx”)注释呢?如果字段很多的话,一个一个写会比较耗时也枯燥,可以用正则表达式一键替。 /** * xxx */(1)doma

2020-12-04 10:00:09 3229 2

原创 模板方法模式&lambda重构模板方法模式

一、概念以及背景模板方法模式(Template Method Pattern):定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。简单来说,当你频繁地需要执行某些操作,这其中的操作有共性,也有差异性的地方,我们可以用模板方法把共性的操作抽取出来,即定义一个操作中算法的“框架”,把差异性的步骤延迟到子类中,即让子类...

2020-03-18 09:38:48 539

原创 责任链模式与lambda重构责任链模式

一、概念以及背景责任链模式(Chain of Responsibility Pattern):责任链模式是一种创建处理对象序列(比如操作序列)的通用方案。一个处理对象可能需要在完成一些工作之后,将结果传递给另一个对象,这个对象接着做一些工作,再转交给下一个处理对象,以此类推。简而言之,待处理的对象,需要经过好几个步骤的处理,形成一条链,一个步骤处理完之后,接着往下一个步骤继续处理。本...

2020-03-10 14:30:57 556

原创 Java8 lambda对Map集合处理的优化

前言:我们假设有这样一个场景,一个电商订单中,有各种优惠券促销活动,比如一个订单有用了店铺优惠券(减100),商品优惠券(减50),满减优惠券(减35),当然优惠券可以叠加,比如这个单有用了两张店铺优惠券,我们需要统计某类优惠券共减去多少金额,处理成一个Map集合,Map集合的键key是优惠券名称,值value是金额。本文涉及的代码在github上,点击 链接 可查看源...

2020-03-07 14:40:33 2109

原创 Debian8 nginx添加阿里云ssl证书,配置https

前言:笔者买了个域名和云服务器,用于学习,本文仅记录下学习过程中的一些收获,如有不足之处,请指正或者提出好的建议。◕‿◕。谢谢。此文是在Debian安装了nginx的基础之上,为服务器配置https,关于如何在Debian安装nginx,这个博主写得蛮不错的:Debian 8 安装Nginx最新版本,关于网站部署https的重要性以及https的一些原理,这个博主也写得蛮不错的:HTTPS证书生...

2020-03-05 10:01:47 889 1

原创 策略模式&lambda重构策略模式

文章目录一、概念以及背景二、策略模式三、lambda重构策略模式三、拓展Java8提供的内置函数式接口一、概念以及背景策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户端而变化,也称为政策模式(Policy)。简而言之,策略模式是客户端在运行时选择某种解决方案(策略,方法,算法)来解决问题,而解决方...

2020-02-24 09:38:15 548

原创 Java如何避免过多的if else、switch case

前言:最近在开发的过程中,发现代码不优化的话,会出现很多的if else,改成switch case也避免不了代码竖向扩展,感觉蛮冗余的,我的场景是这样的,一个电商平台在淘宝、京东、拼多多、苏宁、小红书等渠道都有店铺,不同的渠道需要对订单进行不同的处理,如果你的场景也是这样的,不妨可以参考一下本文,如果文章有误或者有更好的解决方案,还望指出。本文涉及的代码在github上,点击 链接 可...

2020-02-21 16:19:34 4561

原创 简单工厂设计模式&lambda重构简单工厂模式

概念以及背景简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂...

2020-01-22 16:37:55 364

原创 UML之类图

类图类图简介:类图主要是描述类的属性和类之间的关系,是UML(统一建模语言)一种静态结构图。先用一个简单的类作为例子来描述阐述类图,如下:/** * 顾客类,含有用户昵称name、用户userId、用户密码password * @author Fiuty */public class Customer { private String name; privat...

2020-01-22 16:34:58 244

原创 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 791

原创 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 6046

原创 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 5952 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 1756

原创 Idea代码模板和自定义代码模板的使用

文章目录1.关于代码模板(Templates)2. 自带代码模板(Live Templates)3.更快捷的代码模板(Postfix Completion)4. 自定义代码模板最近接触到Idea的代码模板和快捷键,发现可以大大减少开发过程中写一些机械化的代码,我们每天都在写代码,有些代码有结构性的相似,可以考虑使用代码模板(template)的方式加快我们的开发速度。这篇文章会先介绍Idea已经...

2019-05-18 09:25:08 1247

原创 制作U盘启动盘,CentOS系统安装

目录一、CentOS下载过程:二、Rufus USB下载链接是:三、制作启动盘的过程:四、设置重装系统电脑的启动引导顺序五、安装CentOS系统笔者以前没重装过系统,大学太懒了,连windows系统也没重装过,公司要用CentOS7作为服务器,让我拿一台旧机重装下Linux系统,今天写下安装步骤,如有坑和不足之处,还望指出。所需要的工具:一个8G的U盘,CentOS.iso镜像,把镜像写入U盘...

2019-05-18 09:20:05 1612

原创 毕业前的记录

毕业前的记录今年七月份毕业,作为一个程序员,大二开通的博客一直没有写博文,准备了八九个月的考研,也考得很一般,技术水平也是一般般。这段时间除了找调剂信息,还得拟补之前落下的一些知识。看视频学习,觉得没有做笔记的话,很多东西长时间没用的话就忘记了,应该整理成博文,好以后需要用到之处可以再回顾一下。不管如何,以后都要在互联网行业发展,或许是一直走技术路线,故用博客记录成长过程。...

2019-03-01 16:25:24 133

http权威指南图灵程序设计丛书.pdf

超文本转移协议(Hypertext Transfer Protocol,HTTP)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于web浏览器和web服务器之间的双工通信。 HTTP起初是一个简单的协议,因此你可能会认为关于这个协议没有太多好 说的。但现在,你手上拿着的是却一本两磅重 的书。如果你对我们怎么会写出一本650页 的关于HTTP的书感到奇怪的话,可以去看一下目录。本书不仅仅是一本HTTP首部的参考手册;它是一本名副其实的web结构圣经。 本书中,我们尝试着将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节,对HTTP各方面的特性进行了介绍。纵观全书,我们对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。而且,为了节省大家寻找参考文献的时间,我们还对很多HTTP应用程序正常工作所必须的、重要的非HTTP技术进行了介绍。在组织得便于使用的附录中,可以找到按照字母排序的首部参考(这些首部构成了最常见的HTTP文本的基础)。我们希望这种概念性的设计有助于读者对HTTP的使用。 本书是为所有希望理解HTTP以及Web底层结构的人编写的。软硬件工程师也可以将本书作为HTTP及相关web技术的条理清楚的参考书使用。系统架构师和网络管理员可以通过本书更好地了解如何设计、实现并管理复杂的网络架构。性能工程师和分析人员可以从高速缓存和性能优化的相关章节中获益。市场营销和咨询专家可以通过概念的介绍更好地理解web技术的前景。 本书对一些常见的误解进行了说明,推荐了“各种使用诀窍”,提供了便捷的参考资料,并且对枯燥且令人费解的标准规范进行了可读性很强的介绍。在这本书里,我们对Web正常工作所必须且互相关联的技术进行了详细的介绍。 本书是很多对因特网技术充满热情的人经过大量工作写成的。希望对你有所帮助。

2019-06-17

centos7系统管理与运维实战.pdf

CentOS 7作为操作系统基础,介绍了目前企业中常用的软件平台架设和管理方法。通过运维的视角,介绍了运维的基础知识,软件平台的常见搭建思路。 本书共13章,分为3个知识区块。涵盖的主要内容有:以CentOS 7特性和安装、运维基础、网络配置与结构为个知识区块的基础知识;企业中应用广泛的路由与策略路由,针对不同应用平台的文件共享服务NFS、Samba和FTP,目前常见的Web平台LAMP、LNMP,中小型企业应用为广泛的LVS集群技术,实现高可用性的双机热备系统等为第二知识区块的应用平台建设与管理方面的知识;目前热门的虚拟化和云计算为第三知识区块,主要有KVM虚拟化及oVirt管理平台,适合企业使用的GlusterFS存储技术,OpenStack和OpenNebula云平台等知识。 本书从实际生产应用环境出发,并注重安全与运维思路教学,既适合于有一定计算机基础的学习Linux的初学者,又适合于有一定Linux基础,需要学习运维知识的人员阅读。

2019-06-17

Java 8实战.pdf

本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。

2019-06-17

阿里巴巴Java开发手册1.4.pdf

编码规范。代码的可读性是指代码让人容易阅读、理解、调试、可预料的程度。提高代码的可读性可以为代码阅读者节约时间和精力,提升团队协作效率。熟悉和遵守《阿里巴巴Java开发手册》的编程风格,那只是“标”,而代码可读性的“本”可以追溯到软件设计阶段。根据阿里巴巴内部的反馈声音来看,对于数据底层结构、状态图、以及敏捷开发相关的三条,共鸣感最强。

2019-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除