自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大道至简

工匠精神 精益求精

  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

转载 数据库查询中的n+1问题

简介在orm框架中,比如hibernate和mybatis都可以设置关联对象,比如user对象关联dept 假如查询出n个user,那么需要做n次查询dept,查询user是一次select,查询user关联的 dept,是n次,所以是n+1问题,其实叫1+n更为合理一些。mybatis配置UserMapper.xml<resultMap id="BaseResultMap" type="t...

2018-03-21 22:41:50 13388 1

转载 Kafka 基本原理

简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka架构它的架构包括以下组件:话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。生产者(Producer):是能够发...

2018-03-12 01:41:38 576

转载 Spring AOP的实现原理

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring A...

2018-03-11 23:06:01 215

转载 【译】Spring Boot 2.0 官方迁移指南

在你开始之前首先,Spring Boot 2.0 需要 Java 8 或更高版本。不再支持 Java 6 和 7 了。在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新 application.properties/ application.yml相应的配置。为了帮助你解决这一问题,Spring Boot 发布了一个新 spring-boot-propertie...

2018-03-10 21:59:24 714

转载 Redis分布式锁解决抢购问题

废话不多说,首先分享一个业务场景-抢购。一个典型的高并发问题,所需的最关键字段就是库存,在高并发的情况下每次都去数据库查询显然是不合适的,因此把库存信息存入Redis中,利用redis的锁机制来控制并发访问,是一个不错的解决方案。首先是一段业务代码:@Transactionalpublic void orderProductMockDiffUser(String productId){ ...

2018-03-10 21:34:42 1530 2

翻译 《Redis官方文档》用Redis构建分布式锁

原文链接  译者:yy-leo   校对:方腾飞(红体标记重点)用Redis构建分布式锁在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器...

2018-03-09 22:45:26 225

转载 Java动态代理机制详解

class文件简介及加载     Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:      class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎...

2018-03-08 23:18:55 3163 2

原创 Java NIO:IO与NIO的区别

一、概念     NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IONIO面向流面向缓冲阻塞IO非阻塞IO无选择器 1、...

2018-03-08 23:00:17 255

转载 MySQL索引优化

MySQL官方对索引的定义:索引是帮助MySQL高效获取数据的数据结构。索引是在存储引擎中实现的,所以每种存储引擎中的索引都不一样。如MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。  这里仅针对常用的InnoDB存储引擎所支持的BTree索引进行介绍:一、索引类型先创建一个新表,用于演示索引类型CREATE TABLE in...

2018-03-06 22:38:11 191

原创 MyBatis使用#{ }防止SQL注入

Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${}。常见是使用#{ }来防止SQL注入,这里又设计jdbc的预处理机制两者的区别:当使用 #{}的时候select * from user where name = #{name}; #{} 在动态解析的时候, 会解析成一个参数标记符。就是解析之后的语句是:select * from us...

2018-03-04 23:07:01 3709 2

转载 什么场景应该用 MongoDB ?

原文:什么场景应该用 MongoDB ?很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大的减少开发的工...

2018-03-04 21:13:58 766

转载 Java线程池种类、区别和适用场景

newCachedThreadPool:底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECONDS;workQueue为SynchronousQueue(同步队列)通俗:当有新任务到来,则插入到SynchronousQueue中,...

2018-03-02 16:50:45 9968

转载 Java为什么要重写hashCode()和equals方法

一、如果不被重写(原生)的hashCode和equals是什么样的?1. 不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。2. 不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)。  为什么需要重写equals和hashCode方法?      在我们的业务系统中判断对象时有时候需要的不是一种严格意义上的相等,而是一种业务...

2018-03-01 16:55:43 533

批处理自动获得管理员权限

在写bat批处理时常遇到权限不足的问题 。在批处理前部加上这段代码可以自动为此批处理获得管理员权限

2017-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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