Gradle本地配置Gradle默认会将依赖下载到环境变量GRADLE_USER_HOME所指定的目录下。Linux/macOS系统默认目录是$HOME/.gradle/如果想让Gradle也使用maven仓库,即和maven共用本地库的话,需要添加以下脚本到build.gradle:reposit ...
Mybatis插件开发原理
Mybatis插件说明MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, ...
《Java并发编程的艺术》读书笔记(终章)
笔记内容包含第九章~第十章线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建 ...
《Java并发编程的艺术》读书笔记(三)
笔记内容包含第七章~第八章原子操作类Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。因为变量的类型有很多种,所以在Atomic包里一共提供了12个类, ...
《Java并发编程的艺术》读书笔记(二)
笔记内容包含第四章~第六章线程简介Java线程状态变迁由上图中可以看到,线程创建之后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,也就是超时时间到 ...
《Java并发编程的艺术》读书笔记(一)
笔记内容包含第一章~第三章上下文CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。上下文切换也会影响多线程的执行速度。dump线 ...
Spring boot中使用Elasticsearch联合查询
加入Elasticsearch依赖:<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-cli ...
解决由于设置Mybatis的BatchExecutor批量执行器而导致无法获取自增Id的问题
在Mybatis中有三种Executor:SimpleExecutor — SIMPLE 就是普通的执行器。ReuseExecutor -执行器会重用预处理语句(prepared statements)BatchExecutor —它是批量执行器这些就是Mybatis的三种执行器。你可以通过配置文件 ...
Mybatis执行Sql流程源码分析
环境:mybatis-spring-boot-starter: 1.3.4在MybatisAutoConfiguration类中查看Mybatis的SqlSessionFactory接口的实现DefaultSqlSessionFactory是如何注册到Spring容器的。由于不是本文重点,这里就不贴 ...
Spring WebMVC请求处理流程源码分析
Spring WebMVC 版本:5.1.3.RELEASE定义一个controller@RequestMapping("dingtalk")@RestControllerpublic class DingtalkController { @Autowired ...