5 菜园子5

尚未进行身份认证

我要认证

机会是留给有准备的人

等级
TA的排名 5w+

设计模式——状态模式

一、状态模式介绍状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当遇到不同的状态遇到不同的行为的时候,可以使用状态模式状态模式UML图State(抽象状态类):定义一个接口以封装与Context的一个特定状态相关的行为。ConcreteStateA,B,C(具体状态):每一个子类实现一个不同的状态或

2020-10-30 10:41:09

设计模式——抽象工厂模式

阅读目录使用频率:★★★★★ 一、什么是抽象工厂模式 二、补充说明 三、角色 四、例子使用频率:★★★★★一、什么是抽象工厂模式就是对一组具有相同主题的工厂进行封装(维基百科解释的很到位);例如:生产一台PC机,使用工厂方法模式的话,一般会有cpu工厂,内存工厂,显卡工厂...但是使用抽象工厂模式的话,只有一个工厂就是PC工厂,但是一个PC工厂涵盖了cpu工厂,内存工厂,显卡工厂等要做的所有事;二、补充说明注意这里的“相同主题”的概念,表示的是同一个产品族,不能

2020-10-30 10:23:47

设计模式——观察者模式

观察者模式概念其实很简单,两个主体,一个观察者,一个被观察者,当被观察者发生变化时,观察者会有相应的动作。举几个例子,和我们日常生活息息相关的红绿灯,灯就相当于被观察者,行人就相当于观察者,当灯发生变化时,行人会有相应的动作:红灯停,绿灯行,黄灯亮了等一等。再比如我们现在玩的公众号,当我们订阅了某个公众号之后,公众号每发表一篇文章,就会向订阅了它的用户发送这篇文章,我们就可以浏览这篇文章了;当我们取消订阅了,它就不会再向我们推送这篇文章了;只要这个公众号一直在运行,就会一直有人订阅它或者取消订阅。这两个

2020-10-21 17:51:31

Java-IO流

目录1、流的概念和作用1.2、Java IO所采用的模型1.3、IO流的分类1.4、IO流特性1.5、IO流常用到的五类一接口1.6、Java IO流对象1.6.1、输入字节流InputStream1.6.2、输出字节流OutputStream1.6.3、字符输入流Reader1.6.4、字符输出流Writer1.6.5、字节流和字符流使用情况:(重要)1.7、字符流与字节流转换1.8、字节流和字符流的区别(重点)1.9、System类对IO的支持​

2020-08-13 20:34:03

敏捷核心思维-Scrum流程

敏捷核心思维 价值驱动关注高优先级目标,要事第一关注用户痛点和业务价值优先交付高价值的需求敏捷关注持续交付可见的正确结果适应变化找到正确的方向,交付正确的成果自组织团队目标驱动,共享责任 Scrum流程实践 Scrum四大支柱价值驱动的交付自组织团队增量交付迭代交付3个角色Product OwnerScrum MasterDevelopment Team3个工件产品Backlog冲刺Backlog产品增量5..

2020-05-11 22:17:18

大话项目管理工具之Jira篇

言上一篇文章谈的是知识管理工具 —— Confluence,它来自澳大利亚Atlassian 公司。很凑巧的是,今天要介绍的 JIRA 也是来自 Atlassian 公司的。但他不再是知识管理工具了,而是项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。背景在谈 JIRA 之前,就不得不说说敏捷开发了。正式由于项目是基于敏捷开发进行的,因此才引入了 JIRA 这款适合于敏捷开发的项目管理工具。当然,这里不会大篇章的介绍敏捷开发,之.

2020-05-09 09:00:32

SpringBoot2.0实战(18)整合SpringSecurity前后端分离JSON交互

在前端的文章中,我们实现了使用 SpringSecurity 实现登录鉴权,并使用数据库存储用户信息,实现登录鉴权SpringBoot2.0实战(16)整合SpringSecurity之最简登录方法鉴权SpringBoot2.0实战(17)整合SpringSecurity基于数据库登录鉴权登录页都是使用 SpringSecurity 提供的默认登录,入参为username及password,前端通过 form 表单提交请求,后台使用request.getParameter()获取填写数...

2020-05-08 20:59:05

SpringBoot2.0实战(17)整合SpringSecurity基于数据库登录鉴权

通过前一篇文章整合SpringSecurity之最简登录及方法鉴权,我们已经可以简单地使用 SpringSecurity 对应用实现登录鉴权,但是问题在于,用户信息或者是在配置文件中,或者是在代码中写死,应用启动后被加载至内存,这并不符合实际的生产需要,在实际的生产应用中,我们需要使用数据库对用户及角色信息进行持久化,在执行登录操作时,从数据库中获取用户信息。目标整合 SpringSec...

2020-04-29 20:49:32

SpringBoot2.0实战(16)整合SpringSecurity之最简登录方法鉴权

目标整合 SpringSecurity 实现最简登陆鉴权及方法鉴权,大致理解 SpringSecurity 的功用。操作步骤添加依赖编码Controller 层添加一个最简单的测试接口启动类可以看到,除了在 pom 文件加了一个 spring-boot-starter-security 依赖,其它跟创建最简 springBoot 应用...

2020-04-27 22:32:15

SpringBoot2.0实战(15)整合Redis之集成缓存SpringDataCache

相关知识常用 Spring Cache 缓存注解@CacheConfig 在类上设置当前缓存的一些公共设置,比如缓存名称。 @Cacheable 作用在方法上,表明该方法的结果可以缓存,如果缓存存在,则目标方法不会被调用,直接从缓存中获取,如果缓存不存在,则执行方法体,并将结果存入缓存。 @CacheEvice 作用在方法上,删除缓存项或者清空缓存。 @CachePut 作用在方法上...

2020-04-26 21:38:48

SpringBoot2.0实战(14)整合Redis之实现分布式锁

相关知识分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式,在分布式系统中,如果不同的应用之间共享一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。互斥性。在分布式环境下,同一时间只有一个客户端能持有锁。 具备锁失效机制,防止死锁。例如锁的持有者在持有锁期间崩溃而没有主动解锁,锁需要在规定时间后自动失效,以...

2020-04-26 11:00:57

SpringBoot2.0实战(13)整合Redis之初体验Lettuce

相关知识Redis 简介Redis 是一个开源的,基于内存中的,高性能的数据存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如:string、hashes、lists、sets、sortedSets等。Redis 内置了复制(replication)、LUA脚本(Lua scripting)、事务(transactions)、磁盘持久化(persi...

2020-04-23 22:55:23

SpringBoot2.0实战(13)整合RabbitMQ之实现延迟队列、消息重试

相关知识什么是延迟队列队列中的消息在等待指定时间后,消费者才能够进行消费。应用场景商城系统,下单后半个小时未付款,自动取消订单实现方式RabbitMQ 本身没有直接支持延迟队列功能,但是通过控制消息的生存时间及死信队列,可以模拟出延迟队列的效果。RabbitMQ 控制消息的生存时间有两种方法:设置队列属性(x-message-ttl),队列中所有消息都有相同的过期时...

2020-04-14 21:58:24

SpringBoot2.0实战(12)整合RabbitMQ之死信队列

相关知识什么是死信队列“死信”是RabbitMQ中的一种消息机制,当你在消费消息时,如果队列里的消息出现以下情况:消息被否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为false。 消息在队列的存活时间超过设置的TTL时间。 消息队列的消息数量已经超过最大队列长度。那么该消息将成为“死信”,“死...

2020-04-13 19:15:53

SpringBoot2.0实战(11)整合RabbitMQ之ACK消息确认

相关知识交换器direct:一对一 fanout:一对多 topic:模式匹配目标整合 Spring boot 提供的 spring-boot-starter-amqp,实现消息发送、消息消费、确认准备工作安装RabbitMQ请自行根据windows或者Linux进行安装操作步骤添加依赖添加后的整体依赖如下配置编码(消息发送方)定义 E...

2020-04-13 18:42:40

面试官必问的8道volatile关键字命题,你答对了吗?

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。目录一、面试官: Java并发这块了解的怎么样?说说你对volatile关键字的理解二、面试官: 能不能详细说下什么...

2020-04-07 16:13:00

SpringBoot2.0实战(10)整合fluent-validator优雅业务校验

相关知识FluentValidator是一个工具类库,使用流式(Fluent Interface)调用风格让校验跑起来更优雅,代码更简洁,同时验证器(Validator)可以做到开闭原则,实现最大程度的复用。github地址:https://github.com/neoremind/fluent-validator中文使用手册:http://neoremind.com/2016/02/...

2020-04-06 21:42:12

SpringBoot2.0实战(9)整合Mybatis-plus完成CURD

相关知识Mybatis-plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-plus官网:https://mp.baomidou.com/特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CR...

2020-04-06 16:39:11

SpringBoot2.0实战(8)整合Swagger2自动生成API文档

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。相关知识Swagger官网:https://swagger.io常用注解:@Api 用于类,表示标识这个类是swagger的资源@ApiOperation 用于方法,表示一个http请求的操作@ApiParam 用于方法,参数,字段说明,表示对参数的添加元数据(说明或...

2020-04-06 10:21:18

SpringBoot2.0实战(7)整合MapStruct优雅地复制属性

在之前章节的例子中,我们在接收参数的时候都是使用的 User 类对象,这是一个 DO 对象,是用于与数据库进行交互的,而不是用于与前端业务进行交互的,所以需要创建一个 BO 业务对象用来与前端业务进行交互,保证数据隔离性及安全性。接收参数换成了 BO 对象,但数据入库使用的是 DO 对象,这中间就需要将 BO 对象的属性复制到 DO 对象,然后代码里就会出现大量的 do.set(bo.get(...

2020-04-05 20:25:10

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。