<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一砖一瓦]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Fiuty_Da</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Fiuty_Da]]></copyright><item><title><![CDATA[springboot rabbitmq死信队列与延迟队列实战]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/114276902</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/114276902</guid><author>Fiuty_Da</author><pubDate>Tue, 02 Mar 2021 09:39:02 +0800</pubDate><description><![CDATA[死信队列其实也是类似于普通的队列，有交换机、队列、路由等信息，只不过是叫做死信交换机和死信路由以及死信队列，相对特殊了一点，是在正常的队列中绑定了这个特殊的队列的交换机以及路由信息，这样一来正常的队列消息出现特殊的情况下（称为死信消息）可以把这个消息转向这个特殊的队列，即死信队列。
死信队列是在普通的队列中新增两个附加参数，即死信交换机和死信路由，那么延迟队列其实实现起来也很简单，由于消息过期不消费也会变成死信，那么在发送消息的时候设置消息过期时间，同时不对该普通队列进行监听消费，那么该消息不就一定会过期变]]></description><category></category></item><item><title><![CDATA[springboot rabbitmq高可用消息确认消费实战]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/114253368</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/114253368</guid><author>Fiuty_Da</author><pubDate>Mon, 01 Mar 2021 09:53:07 +0800</pubDate><description><![CDATA[RabbitMQ的高可用主要体现在消息的发送、传输和接收的过程中，可以保证消息成功发送、不会丢失，以及被确认消费/不重复消费。
- 对于消息是否发送成功，主要是针对生产者端的消息生产确认机制；
- 对于消息不会丢失，主要是rabbitmq消息持久化机制；
- 对于消息确认消费/不重复消费，主要是针对消费者端对消息的确认消费机制。]]></description><category></category></item><item><title><![CDATA[springboot rabbitmq不同交换机类型实战]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/114253135</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/114253135</guid><author>Fiuty_Da</author><pubDate>Mon, 01 Mar 2021 09:47:27 +0800</pubDate><description><![CDATA[RabbitMQ常用的交换器类型有fanout、direct、topic、headers这四种，其中headers实际很少用到。
fanout：把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。
direct：匹配规则相对简单，把消息路由到交换机和路由键RoutingKey绑定的队列中。
topic：匹配规则灵活，路由键RoutingKey可使用通配符" * " 和 “ # ”，代表匹配一个单词和任意单词。]]></description><category></category></item><item><title><![CDATA[springboot rabbitmq入门使用]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/114252362</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/114252362</guid><author>Fiuty_Da</author><pubDate>Mon, 01 Mar 2021 09:41:48 +0800</pubDate><description><![CDATA[RabbitMQ作为一款能实现高性能存储分发消息的分布式中间件，具有异步通信、服务解耦、接口限流、消息分发和业务延迟处理等功能，在实际生产环境中具有很广泛的应用。]]></description><category></category></item><item><title><![CDATA[spring boot 加载配置文件]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/110785525</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/110785525</guid><author>Fiuty_Da</author><pubDate>Sun, 06 Dec 2020 22:41:53 +0800</pubDate><description><![CDATA[以下例子代码在github中，代码链接
一、加载配置文件值
在springboot项目中，配置值可以通过两种方式来设置，一种是配置值写在properties文件中，另一种是写在yaml中。
（1）配置值写在properties文件中，读取properties配置值有两种方式，一种是写一个配置类，另一种是注入Environment类来获取。
default.properties配置值如下：


写一个配置类读取

@Configuration
@PropertySource(value = {"default]]></description><category></category></item><item><title><![CDATA[Idea正则表达式一键替换注释，生成@ApiModelProperty(““)]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/110625737</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/110625737</guid><author>Fiuty_Da</author><pubDate>Fri, 04 Dec 2020 10:00:09 +0800</pubDate><description><![CDATA[平常日常开发中，返回给前端的vo对象在字段上需要加注释@ApiModelProperty(“xxx”)，方便在前端同事在swagger文档看注释，一般我是domain对象生成之后，复制代码到vo对象里，然后再修改Java块注释为前端的注释@ApiModelProperty(“xxx”)，那怎么从以下的代码注释转为@ApiModelProperty(“xxx”)注释呢？如果字段很多的话，一个一个写会比较耗时也枯燥，可以用正则表达式一键替。
    /**
     * xxx
     */

（1）doma]]></description><category></category></item><item><title><![CDATA[模板方法模式&lambda重构模板方法模式]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104937649</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104937649</guid><author>Fiuty_Da</author><pubDate>Wed, 18 Mar 2020 09:38:48 +0800</pubDate><description><![CDATA[一、概念以及背景

模板方法模式(Template Method Pattern)：定义一个操作中算法的框架，而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

简单来说，当你频繁地需要执行某些操作，这其中的操作有共性，也有差异性的地方，我们可以用模板方法把共性的操作抽取出来，即定义一个操作中算法的“框架”，把差异性的步骤延迟到子类中，即让子类...]]></description><category></category></item><item><title><![CDATA[责任链模式与lambda重构责任链模式]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104773988</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104773988</guid><author>Fiuty_Da</author><pubDate>Tue, 10 Mar 2020 14:30:57 +0800</pubDate><description><![CDATA[一、概念以及背景

责任链模式(Chain of Responsibility  Pattern):责任链模式是一种创建处理对象序列（比如操作序列）的通用方案。一个处理对象可能需要在完成一些工作之后，将结果传递给另一个对象，这个对象接着做一些工作，再转交给下一个处理对象，以此类推。

简而言之，待处理的对象，需要经过好几个步骤的处理，形成一条链，一个步骤处理完之后，接着往下一个步骤继续处理。

本...]]></description><category></category></item><item><title><![CDATA[Java8 lambda对Map集合处理的优化]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104714616</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104714616</guid><author>Fiuty_Da</author><pubDate>Sat, 07 Mar 2020 14:40:33 +0800</pubDate><description><![CDATA[前言：我们假设有这样一个场景，一个电商订单中，有各种优惠券促销活动，比如一个订单有用了店铺优惠券（减100），商品优惠券（减50），满减优惠券（减35），当然优惠券可以叠加，比如这个单有用了两张店铺优惠券，我们需要统计某类优惠券共减去多少金额，处理成一个Map集合，Map集合的键key是优惠券名称，值value是金额。


本文涉及的代码在github上，点击&nbsp;链接&nbsp;可查看源...]]></description><category></category></item><item><title><![CDATA[Debian8 nginx添加阿里云ssl证书，配置https]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104668730</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104668730</guid><author>Fiuty_Da</author><pubDate>Thu, 05 Mar 2020 10:01:47 +0800</pubDate><description><![CDATA[前言：笔者买了个域名和云服务器，用于学习，本文仅记录下学习过程中的一些收获，如有不足之处，请指正或者提出好的建议｡◕‿◕｡谢谢。此文是在Debian安装了nginx的基础之上，为服务器配置https，关于如何在Debian安装nginx，这个博主写得蛮不错的：Debian 8 安装Nginx最新版本，关于网站部署https的重要性以及https的一些原理，这个博主也写得蛮不错的：HTTPS证书生...]]></description><category></category></item><item><title><![CDATA[策略模式&lambda重构策略模式]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104472140</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104472140</guid><author>Fiuty_Da</author><pubDate>Mon, 24 Feb 2020 09:38:15 +0800</pubDate><description><![CDATA[文章目录一、概念以及背景二、策略模式三、lambda重构策略模式三、拓展Java8提供的内置函数式接口
一、概念以及背景

策略模式(Strategy Pattern):定义一系列算法类，将每一个算法封装起来，并让它们可以相互替换，策略模式让算法独立于使用它的客户端而变化，也称为政策模式(Policy)。

简而言之，策略模式是客户端在运行时选择某种解决方案（策略，方法，算法）来解决问题，而解决方...]]></description><category></category></item><item><title><![CDATA[Java如何避免过多的if else、switch case]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104429833</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104429833</guid><author>Fiuty_Da</author><pubDate>Fri, 21 Feb 2020 16:19:34 +0800</pubDate><description><![CDATA[前言：
最近在开发的过程中，发现代码不优化的话，会出现很多的if else，改成switch case也避免不了代码竖向扩展，感觉蛮冗余的，我的场景是这样的，一个电商平台在淘宝、京东、拼多多、苏宁、小红书等渠道都有店铺，不同的渠道需要对订单进行不同的处理，如果你的场景也是这样的，不妨可以参考一下本文，如果文章有误或者有更好的解决方案，还望指出。


本文涉及的代码在github上，点击 链接 可...]]></description><category></category></item><item><title><![CDATA[简单工厂设计模式&lambda重构简单工厂模式]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104070963</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104070963</guid><author>Fiuty_Da</author><pubDate>Wed, 22 Jan 2020 16:37:55 +0800</pubDate><description><![CDATA[概念以及背景
简单工厂模式(Simple Factory Pattern)：定义一个工厂类，它可以根据参数的不同返回不同类的实例，被创建的实例通常都具有共同的父类。
因为在简单工厂模式中用于创建实例的方法是静态(static)方法，因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式，它属于类创建型模式。
工厂模式是最常用的一类创建型设计模式，通常我们所说的工厂...]]></description><category></category></item><item><title><![CDATA[UML之类图]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/104070943</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/104070943</guid><author>Fiuty_Da</author><pubDate>Wed, 22 Jan 2020 16:34:58 +0800</pubDate><description><![CDATA[类图

类图简介：类图主要是描述类的属性和类之间的关系，是UML(统一建模语言)一种静态结构图。
先用一个简单的类作为例子来描述阐述类图，如下：

/**
 * 顾客类,含有用户昵称name、用户userId、用户密码password
 * @author Fiuty
 */
public class Customer {

    private String name;

    privat...]]></description><category></category></item><item><title><![CDATA[Java中POJO、BO、DTO、DO对象简述]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/103262112</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/103262112</guid><author>Fiuty_Da</author><pubDate>Tue, 26 Nov 2019 18:10:15 +0800</pubDate><description><![CDATA[POJO（Plain Ordinary Java Object）：简单对象，专指只有 setter / getter / toString 的简单类，即DO/DTO/BO等领域对象的统称。阿里开发手册规约禁止对象命名成xxxPOJO。


DO（Data Object）：此对象与数据库表结构一一对应，通过 DAO 层向上传输数据源对象。xxxDO，xxx为数据表名。


DTO（ Data T...]]></description><category></category></item><item><title><![CDATA[java.sql.SQLSyntaxErrorException：ORA-01722:invalid number 异常]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/99674416</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/99674416</guid><author>Fiuty_Da</author><pubDate>Fri, 16 Aug 2019 11:20:47 +0800</pubDate><description><![CDATA[bug异常主要信息如下：
java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
如图所示：



先说一下bug的由来，我是用mybatis-plus执行一个删除操作，xxxMapper.deleteById(xxxId)，想删除某个id下的一个数据，然后就报错了。
{conn-10001, pstmt-20053} execut...]]></description><category></category></item><item><title><![CDATA[No validator could be found for constraint 'org.hibernate.constraint.Length'异常]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/99674361</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/99674361</guid><author>Fiuty_Da</author><pubDate>Fri, 16 Aug 2019 11:16:27 +0800</pubDate><description><![CDATA[bug异常主要信息如下：
javax.validation.UnexpectedTypeException: HV00030: No validator could be found for constraint ‘org.hibernate.constraint.Length’ validating type ‘java.time.LocalDateTime’ . Check configur...]]></description><category></category></item><item><title><![CDATA[linux抓取某条日志记录的命令]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/99104194</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/99104194</guid><author>Fiuty_Da</author><pubDate>Sat, 10 Aug 2019 19:44:41 +0800</pubDate><description><![CDATA[温馨提示：截图可能有点小模糊，勉强可以看到，查看原图可以看得比较清晰

一、less命令

格式是：less [参数]  文件，假设all-9000-2019-08.0.log是文件名



打开日志文件是 less all-9000-2019-08.0.log




当我们的日志非常多的时候，想要抓取某一条日志怎么办呢？用斜杆 /xx 来搜索xx关键字的日志：

按下回车，发现抓取到了我们输...]]></description><category></category></item><item><title><![CDATA[Idea代码模板和自定义代码模板的使用]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/90311435</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/90311435</guid><author>Fiuty_Da</author><pubDate>Sat, 18 May 2019 09:25:08 +0800</pubDate><description><![CDATA[文章目录1.关于代码模板（Templates）2. 自带代码模板（Live Templates）3.更快捷的代码模板（Postfix Completion）4. 自定义代码模板
最近接触到Idea的代码模板和快捷键，发现可以大大减少开发过程中写一些机械化的代码，我们每天都在写代码，有些代码有结构性的相似，可以考虑使用代码模板（template）的方式加快我们的开发速度。这篇文章会先介绍Idea已经...]]></description><category></category></item><item><title><![CDATA[制作U盘启动盘，CentOS系统安装]]></title><link>https://blog.csdn.net/Fiuty_Da/article/details/90311400</link><guid>https://blog.csdn.net/Fiuty_Da/article/details/90311400</guid><author>Fiuty_Da</author><pubDate>Sat, 18 May 2019 09:20:05 +0800</pubDate><description><![CDATA[目录一、CentOS下载过程：二、Rufus USB下载链接是：三、制作启动盘的过程：四、设置重装系统电脑的启动引导顺序五、安装CentOS系统
笔者以前没重装过系统，大学太懒了，连windows系统也没重装过，公司要用CentOS7作为服务器，让我拿一台旧机重装下Linux系统，今天写下安装步骤，如有坑和不足之处，还望指出。
所需要的工具：一个8G的U盘，CentOS.iso镜像，把镜像写入U盘...]]></description><category></category></item></channel></rss>