自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)

原创 设计模式-装饰器模式

装饰器(Decorator)模式指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。采用装饰模式扩展对象的功能比采用继承方式更加灵活;可以设计出多个不同的具体装饰类,创造出多个不同行为的组合。但是装饰模式增加了许多子类,如果过度使用会使程序变得很复杂。 模式结构 装饰器模式的角色如下: 顶层接口 被装饰者 装饰器抽象类 装饰器 源码导读 装饰器模式使用的典型就是io流了,前面适配器模式我们说到过io流使用了适配器模式,用于字节流转换到字符流;装饰器

2020-09-07 16:08:50 18

原创 设计模式杂谈

关于设计的个人看法 我们设计一个功能的时候,要考虑的无非是那些问题:可靠性,鲁棒性,解耦性,扩展性,可读性等等。 我们对代码和功能的设计过程,从面相对象的角度来讲就是一个拟物或者拟人化的一个过程——我们先确定某个功能需要什么样的角色或者“零部件”参与,然后创建对应的类,指定类的角色职能;然后各个类各司其职;然后再考虑类的扩展性相关的问题,做出优化。 设计功能的第一步当然是明确需求,但是功能落地的重要过程我认为就是拟物拟人化的这个过程。 设计案例分析 现在我们有个需求,异步模块——将要执行的数据放到后台异步去

2020-09-07 16:03:34 24

原创 rabbitMQ结合spring-boot使用三

ListenerContainer 的使用 在消费端,我们的消费监听器是运行在 监听器容器之中的( ListenerContainer ),springboot 给我们提供了两个监听器容器 SimpleMessageListenerContainer 和 DirectMessageListenerContainer 在配置文件中凡是以 spring.rabbitmq.listener.simple 开头的就是对第一个容器的配置,以 spring.rabbitmq.listener.direct 开头的是对第

2020-09-07 15:41:42 12

原创 rabbitMQ结合spring-boot使用二

这一章节我们会学习rabbitMQ在项目生产中一些重要的特性,如持久化,消息确认机制,消息过期等特性。只要能利用好这些特性,我们就能开发出可用性强的,功能强大的MQ系统。 持久化 RabbitMQ通过消息持久化来保证消息的可靠性——为了保证RabbitMQ在退出或者发生异常情况下数据不会丢失,需要将 queue ,exchange 和 Message 都持久化。下面分别介绍它们持久化配置的方式。 对于 queue ,exchange 在创建的时候都会提供一个参数用以设置是否持久化,而如果使用它们对应的建造者

2020-09-07 15:40:13 27

空空如也

空空如也

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