Mybatis-Plus 简介MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅...
mysql高性能索引策略 索引随笔文章目录索引随笔索引分析索引优点索引顺序索引限制高性能索引策略1. 独立的列2. 前缀索引和索引选择性3. 多列索引多列索引全覆盖索引4. 选择合适的索引列顺序5. 聚簇索引优点缺点优化6. 使用索引扫描来做排序7.避免冗余、重复、未使用的索引8.索引和锁索引分析EXPLAIN命令可以查看sql语句的执行策略例如:EXPLAIN select fil_id,actor_id fr...
Illegal unquoted character ((CTRL-CHAR, code 19)) Restful接口400错误 Illegal unquoted character ((CTRL-CHAR, code 19)): has to be escaped using backslash to be included in string value 解决此错误与restful框架的json序列化配置有关,例如使用fastjson 可以修改框架默认json解析配置如jersey框架 ...
sqlserver 存储过程中计算md5不正确 sqlserver 存储过程中计算md5不正确错误declare @book_id nvarchar(200)SET @book_id='storedb'select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',@book_id+'58')),3,32)正确declare @book_id varchar(200)S...
史上最简单的 SpringCloud 教程 转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘...
Spring Cloud Hystrix Spring Cloud HystrixSpring Cloud HystrixHystrix是什么Hystrix能做什么Hystrix设计原则Hystrix 实现原理1.舱壁隔离模式隔离策略2.观察者模式3.AOP配置命令切入Hystrix 使用Hystrix是什么Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务...
Spring Cloud Ribbon Spring Cloud RibbonSpring Cloud Ribbon简介负载均衡微服务使用RibbonRestTemplate负载均衡器ILoadBalancer负载均衡策略IRule配置重试机制配置总结示例实现原理(简述)简介Spring Cloud Ribbon 是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netfli...
Spring Cloud Eureka Spring Cloud EurekaSpring Cloud EurekaEureka服务治理体系服务治理服务注册服务发现Netflix EurekaNetflix Eureka介绍Eureka服务端Eureka客户端单Eureka服务中心服务端客户端高可用Eureka集群双节点Eureka配置服务端配置客户端配置基础架构服务治理机制...
SpringBoot Aop SpringBoot AopSpringBoot AopAop简介切入点函数逻辑运算符注解说明示例Aop简介面向切面编程,通过反射、代码织入实现在方法执行前、执行后调用切入函数,主要功能涉及日志记录,方法返回值处理、方法调用前资源准备等切入点函数1.executionexecution(方法修饰符(可选) 返回类型 方法名 参数 异常模...
LinkedList 源码实现 Java LinkedList 源码实现1.链表实现==双向链表,非同步== transient int size = 0; /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first...
Java ArrayList源码分析 Java ArrayList源码分析1. ArrayList默认大小 10private static final int DEFAULT_CAPACITY = 10;ArrayList 底层实现Object[]数组transient Object[] elementData;2. 扩容方式//扩容函数private void grow(int m...
Fail-Fast快速失败机制 Fail-Fast快速失败机制1.简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常...
Java HashMap 源码分析 Java HashMap 源码分析HashMap实现简介HashMap 底层采用节点数组,数组内存储的是链表或者红黑树(JDK8)1. 源码分析1.1 属性 /** * The default initial capacity - MUST be a power of two. * 默认容量必须是2的倍数 这里是16 *...
Java String 解析 Java String 解析1. String为什么是不可变对象首先String不属于8种基本数据类型,String是一个对象。内部成员变量public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The va...
Java 四种引用类型 Java 四种引用类型1.强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object o=new Object(); // 强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,...
Java 深浅拷贝 Java 深浅拷贝定义浅拷贝只复制一个对象(包括基本类型),对象内部存在的指向其他对象的引用则不复制深拷贝:对象以及对象内部的引用均复制import java.util.ArrayList;import java.util.List;public class Test { static class Person { private S...
线程封闭技术 简介如果仅在单线程内访问数据,就不需要同步,这种技术被称为线程封闭,它是实现线程安全性最简单方式之一。 当某个对象封闭在一个线程中时,这种用法将自动实现线程安全性,即使被封闭的对象本身不是线程安全的。Swing的可视化组件和数据模型对象都不是线程安全的,Swing通过将它们封闭到了Swing的事件分发线程中来实现线程安全性。JDBC Connection对象并没规定其必须是线程安全的,...
并发编程随笔 1.死锁某资源加锁后没有释放或者没有正确释放该锁,另一线程无法获取该资源锁,引起死锁。 出现死锁可以dump线程信息,查看死锁原因,从而解决。避免死锁的常见方法避免一个线程同时获取多个锁避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制对于数据库锁,加锁和解锁必须在一个数据库...
自旋锁 几种自旋锁的实现原理自定义接口 interface Lock { void lock(); void unLock(); }1. SpinLock(自旋锁) static class SpinLock implements Lock { /** * currentHoldLockTh...
Java Lock Java Lock1. synchronized的实现原理与应用synchronized是Java元老级锁,又被称为重量级锁,JDK1.6中为了减少获得锁和释放锁带来的性能消耗而引入偏向锁和轻量级锁1.1 synchronized实现同步synchronized实现同步的基础:java 中的每一个对象都可以作为锁,这些锁被称为内置锁或者监视锁。对于普通同步方法,锁是当...