排序:
默认
按更新时间
按访问量

分布式锁

原创地址为:http://www.54tianzhisheng.cn/2018/04/24/Distributed_lock/ 什么是锁? 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 ...

2018-10-16 11:34:43

阅读数:19

评论数:0

Swagger2 生成 Spring Boot API 文档

POM 文件 代码支持 访问地址 Swagger UI 注解 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。本文主要介绍了在 Spring Boot 添加 Swagger 支持, 生成可自动维护的 API 文档。 POM 文件...

2018-08-28 18:23:36

阅读数:22

评论数:0

如何在数据库事务提交成功后进行异步操作

问题 业务场景 业务需求上经常会有一些边缘操作,比如主流程操作A:用户报名课程操作入库,边缘操作B:发送邮件或短信通知。 业务要求 操作A操作数据库失败后,事务回滚,那么操作B不能执行。 操作A执行成功后,操作B也必须执行成功 如何实现 普通的执行A,之后执行B,是...

2018-08-28 14:37:05

阅读数:29

评论数:0

Mybatis缓存的那些事

今天写代码的时候碰到了一个情况 简单的的写了一个小demo @Test @Transactional public void test(){ Role role = new Role(); role.setRolename("x...

2018-07-31 18:44:56

阅读数:44

评论数:0

Java 8 中的 Streams API 详解

为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stre...

2018-07-18 19:45:15

阅读数:28

评论数:0

Jdk1.8 集合处理

@Test public void test(){ List<User> list = new ArrayList<>(); for (int i=0; i&am...

2018-07-16 13:53:39

阅读数:126

评论数:0

Redis常用命令

Redis常用命令集1)连接操作命令quit:关闭连接(connection)auth:简单密码认证help cmd: 查看cmd帮助,例如:help quit2)持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳sh...

2018-03-26 21:21:38

阅读数:28

评论数:0

Range

在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。  在数学里面的范围是有边界和无边界...

2018-03-07 20:53:50

阅读数:46

评论数:0

EventBus

EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。  Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫...

2018-03-07 20:52:14

阅读数:27

评论数:0

Guava新集合-Table等

Table  当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现。为此Guava提供了一个新的集合类型-Tabl...

2018-03-07 20:49:35

阅读数:37

评论数:0

Guava新增集合类型-Bimap

BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。  通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就需要额外编写一些代码了。首先来看下面一种表示标识序号和文件名的map结构。 @Test ...

2018-03-07 20:47:31

阅读数:36

评论数:0

Guava新增集合类型-Multimap

在日常的开发工作中,我们有的时候需要构造像Map<K, List<V>>或者Map<K, Set<V>>这样比较复杂的集合...

2018-03-07 20:45:00

阅读数:24

评论数:0

Guava新增集合类型-Multiset

Guava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。Guava集合非常精准地实现了JDK定义的接口。Guava中定义的新集合有:  Multiset  SortedMultiset  Multimap  ListMultimap  Set...

2018-03-07 20:42:45

阅读数:56

评论数:0

Immutable(不可变)集合

  不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。  为什么要用immutable对象?immutable对象有以下的优点:    1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象    2.线程安全...

2018-03-07 20:39:57

阅读数:34

评论数:0

简化异常处理的Throwables类

 有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中。Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。例如:import java.io.IOException; import org.junit.Test; import com.googl...

2018-03-07 20:35:25

阅读数:42

评论数:0

复写的Object常用方法

在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, Guava也提供了类似的方式。下面我们来看看Guava中这几个方法简单使用。 ...

2018-03-07 20:31:41

阅读数:54

评论数:0

Preconditions优雅的检验参数

在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。在平常情况下我们对参数的判断都需要自己来逐...

2018-03-07 20:26:37

阅读数:22

评论数:0

Optional优雅的使用null

在我们学习和使用Guava的Optional之前,我们需要来了解一下Java中null。因为,只有我们深入的了解了null的相关知识,我们才能更加深入体会领悟到Guava的Optional设计和使用上的优雅和简单。   null代表不确定的对象:  Java中,null是一个关键字,用来标识一个不...

2018-03-07 20:23:35

阅读数:32

评论数:0

Google Guava 类库简介

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O,...

2018-03-07 20:14:59

阅读数:22

评论数:0

Redis setnx

SETNXSETNX key value将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。可用版本:>= 1.0.0时间...

2018-03-02 16:03:19

阅读数:67

评论数:0

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