摘要:### Redis工具类 ``` import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redi
阅读全文
摘要:mybatis-plus-generator 自动生成代码 依赖包 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</vers
阅读全文
摘要:MongoDb常用的语句: 详情见: https://blog.csdn.net/sinat_32502451/article/details/134342559 MongoDb建表: MongoDB不需要建表,直接插入数据就会建表。 日期用 ISODate() 转换。 db.getCollecti
阅读全文
摘要:OkHttp依赖包: <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.8.1</version> </dependency> <dependency> <g
阅读全文
摘要:Bean和Map转换的工具类 依赖包: 基于Spring的cglib 实现。如果是Spring项目,可以不引入依赖。 ``` <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId
阅读全文
摘要:Google Guava 谷歌出品的,非常实用。包含集合、并发、I/O、散列、缓存、字符串等。 依赖: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</ver
阅读全文
摘要:hutool 工具类 hutool 依赖 引入 hutool 依赖包。 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.6</version> </dependenc
阅读全文
摘要:基础类型转换 详情见:https://blog.csdn.net/sinat_32502451/article/details/139417740 BigDecimal计算: 涉及金额之类的运算,不要用 Double、Float 这些类型,用 BigDecimal 才能精确计算。 详情见: http
阅读全文
摘要:Stream的sorted() java8中,可以用Stream流的sorted()进行排序。 示例Bean 以下我们会使用这个Bean来做示例。 public class Order { private String weight; private Double price; private St
阅读全文
摘要:Redis 批量处理 在开发中,有时需要对Redis 进行大批量的处理。 比如Redis批量查询多个Hash。如果是在for循环中逐个查询,那性能会很差。 这时,可以使用 Pipeline (管道)。 Pipeline (管道) Pipeline (管道) 可以一次性发送多条命令并在执行完后一次性将
阅读全文
摘要:线程池异步的基础知识 详情见:https://blog.csdn.net/sinat_32502451/article/details/133039624 线程池执行多任务,获取返回值 线程池的 submit()方法,可以提交任务,并返回 Future接口。 而 future.get(),可以获取到
阅读全文
摘要:耗时统计 在做性能优化的时候,耗时统计非常有用。 分析出时间主要消耗在哪里,才能够做出相应的优化。 System.currentTimeMillis() 平常我们在做耗时统计时,经常会用 System.currentTimeMillis(),如下: long start = System.curre
阅读全文
摘要:工厂模式 开发中,有时会需要根据不同的类型,创建同一接口的对应的不同实现类,再去执行方法。 工厂模式的理解,详情见: https://www.cnblogs.com/expiator/p/8245143.html 示例 以下会举一个例子,不同的反馈类型 type,创建不同的审批处理器对象,进行审批。
阅读全文
摘要:打印对象: 可以将对象、list等转换为 json字符串,再进行打印。 log.info("info value:{}", JSON.toJSONString(obj)); 打印debug日志: 开启debug级别时,才打印debug日志。 if (log.isDebugEnabled()) { l
阅读全文
摘要:Integer.parseInt 常见的错误,如以下这种代码: String str = obj.getVar(); //obj.getVar()的结果为 null,以下代码会报错 int age = Integer.parseInt(str); Integer.parseInt(null) 会报错
阅读全文
摘要:使用场景 便用mybatis,可以用 pagehelper 分页 。 maven依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.6</v
阅读全文
摘要:### java常用的工具类/第三方类库 在开发的过程中,有些代码直接用原生的语法写起来比较麻烦。 多掌握一些java常用的工具类、java常用的第三方类库,可以让我们提高效率,代码变得简洁优雅。 ### 一、apache commons-lang apache出品,java开发者经常会用到的工具类
阅读全文
摘要:限流算法 https://blog.csdn.net/sinat_32502451/article/details/139223748 注意: RateLimiter限流属于单体版的限流,如果是高并发的分布式系统,需要用分布式限流。 Maven依赖包: <dependency> <groupId>c
阅读全文
摘要:PropertyDescriptor 我们在开发的过程中,有时会需要动态地设置属性,也就是动态getter、 setter。 使用传统的反射 Method、Field等类去处理,需要对方法名进行大量拼接,比较麻烦。 可以使用 PropertyDescriptor. 常用方法: 构造方法: Prope
阅读全文
摘要:函数式接口 在java8中,新增了很多函数式接口。在接口上标记了注解**@FunctionalInterface**的都是函数式接口 比如 Function、Supplier、Consumer、Predicate、BiFunction、BiConsumer、BiPredicate。 Function
阅读全文