2019年6月19日
摘要: Redisson实现分布式锁—RedissonLock 有关Redisson实现分布式锁上一篇博客讲了分布式的锁原理: "Redisson实现分布式锁 原理" 这篇主要讲RedissonLock和RLock。Redisson分布式锁的实现是基于RLock接口,RedissonLock实现RLock接阅读全文
posted @ 2019-06-19 23:00 雨点的名字 阅读(163) 评论(0) 编辑
  2019年6月18日
摘要: Redisson实现分布式锁 原理 有关Redisson作为实现分布式锁,总的分3大模块来讲。 本文只介绍Redisson如何实现分布式锁的原理。其它的会在接下来的博客讲,最后有关 的博客中会放上项目源码到GitHub上。 一、高效分布式锁 当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足阅读全文
posted @ 2019-06-18 22:44 雨点的名字 阅读(186) 评论(2) 编辑
  2019年6月15日
摘要: @ConditionalOnBean与@ConditionalOnClass 上一篇讲的 可以通过条件控制是否注入Bean,这篇讲下有关Bean其它几个常用的注解使用方式 下面我通过案例深入讲下 注解,这个理解其它也就理解了。 一、@ConditionalOnBean概念 比如下面一种场景,我在实例阅读全文
posted @ 2019-06-15 14:48 雨点的名字 阅读(107) 评论(0) 编辑
  2019年6月13日
摘要: SpringBoot(15)—@Conditional注解 @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean。 一、概述 1、@Conditional注解定义 2、Condition 我们点进去看后,发现它是一个接口,有一个方法。阅读全文
posted @ 2019-06-13 23:41 雨点的名字 阅读(189) 评论(1) 编辑
  2019年6月11日
摘要: SpringBoot(14)—注解装配Bean SpringBoot装配Bean方式主要有两种 通过Java配置文件 的方式定义Bean。 通过注解扫描的方式 。 一、当前项目装配Bean 创建项目名称为 。 1、@Component方式 注解@Component 表明这个类将被Spring IoC阅读全文
posted @ 2019-06-11 22:38 雨点的名字 阅读(201) 评论(0) 编辑
  2019年6月5日
摘要: 分布式 基于Redis进行接口IP限流 为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃,所以我们需要对一些特定的接口进行IP限流,即一定时间内同一IP访问的次数是有限的。 用Redis作为限流组件的核心的原理,将用户的IP地址当Key,一段时阅读全文
posted @ 2019-06-05 23:03 雨点的名字 阅读(313) 评论(2) 编辑
  2019年6月3日
摘要: java提高(16) java注解 注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过 来解析注解。 一、JDK自带注解 JDK1.5之后内部提供的三个注解 二、自定义注解 在自定义注解上面有四个注解,我们称为 ,下面一个一个解释。 1、@Ta阅读全文
posted @ 2019-06-03 22:22 雨点的名字 阅读(158) 评论(0) 编辑
  2019年5月29日
摘要: IDEA—DEBUG功能 一、常用快捷键 快捷键并不是完全一样的,我这边是MAC安装的IDEA, 这边最主要还是知道DEBUG时常用的功能。 1、快捷键 2、图形化界面解释 第一组 :如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前执行的断点。 :步过,一行一行地往下走,如果这一行上有方法不阅读全文
posted @ 2019-05-29 23:17 雨点的名字 阅读(51) 评论(0) 编辑
  2019年5月27日
摘要: IDEA(3)—Mac中IDEA插件 IDEA提供了许多很实用的插件,能够大大提高开发效率和开发水平,这里列举几个很实用的插件。 :这边的IDEA是MAC系统。 一、插件管理界面简介 1、界面位置 安装插件三个按钮的作用 此按钮的功能是安装JetBrains的官方插件 此按钮的功能是浏览官方仓库,官阅读全文
posted @ 2019-05-27 22:21 雨点的名字 阅读(305) 评论(0) 编辑
摘要: IDEA(2)—MAC代码模版 IDEA提供了许多的自带代码模版,这些模版主要是对于我们经常开发用到的代码制作成一个模版,比如for循环,这个是经常会用到的代码,如果没有代码模版,我们需要一个一个手动输入,有了代码模版也只需输入该模版的快捷键,就会自动生成for循环相关代码,提高开发效率。 一、自带阅读全文
posted @ 2019-05-27 19:42 雨点的名字 阅读(39) 评论(0) 编辑
  2019年5月24日
摘要: IDEA常用快捷键 IDEA是一个很好的开发工具,用好它能大大提高我们的开发效率,所以这里学习总结下有关IDEA实用的一些教程,比如常用快捷键,如何自定义代码模版,如何debug异常断点,或者说多线程下的debug如何实现。接下来都会总结,这篇主要总结常用快捷键。 一、快捷键 1、键盘键说明 2、常阅读全文
posted @ 2019-05-24 22:58 雨点的名字 阅读(31) 评论(0) 编辑
  2019年5月21日
摘要: Shell(2)—数组 常用的 Bash Shell 只支持一维数组,不支持多维数组。 一、概念 Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。Shell 数组元素的下标也是从 0 开始计数。 1、Shell 数组的定义 在 Shell 中,用括号 来表示数组,数组元素之间用 来分阅读全文
posted @ 2019-05-21 21:06 雨点的名字 阅读(26) 评论(0) 编辑
  2019年5月20日
摘要: MySQL(11) 约束 : 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。 先把Mysql几种约束列出来: MySQL不支持check约束,但可以使用check约束,而没有任何效果。 一、语法 不多说理论,说下语法和示例就好。 1、建表时直接建约束 sql drop table 阅读全文
posted @ 2019-05-20 23:49 雨点的名字 阅读(27) 评论(0) 编辑
摘要: MySQL(11) 纪录一次left join一对多关系而引起的bug 我们有一个 订单表 和 一个 物流表 它们通过 订单ID 进行一对一的关系绑定。但是由于物流表在保存订单信息的时候没有做判断该订单是否已经有物流信息, 这就变成同一个订单id在物流表中存在多条数据,也就变成了本来订单表只有100阅读全文
posted @ 2019-05-20 23:49 雨点的名字 阅读(763) 评论(15) 编辑
  2019年5月17日
摘要: Shell(1) 变量 :学习shell的目的很简单,自己经常在linux服务器上做各种操作,而且基本上是一些相同的命令操作,所以就想通过shell脚本来启动就行,能够节省一定的开发时间,提高工作效率。 一、shell变量 1、定义变量 Shell 支持以下三种定义变量的方式 如果 value 不包阅读全文
posted @ 2019-05-17 23:19 雨点的名字 阅读(82) 评论(0) 编辑