Java8
程序员老任
Coding my passion!
展开
-
使用Spring AOP实现简单的日志解耦
一、什么是AOP? AOP(Aspect Oriented Programming),即为面向切面编程,那什么是切面?如果你家里装了前置净水器的话,这个概念很好理解,就是在进水的地方,把水管切断,在进水之后入户之前装上净水器,实现了对进水的净化处理。 从扩展性来讲,如果用户需要全屋水加热,那就在切面里串一个加热器就行能轻松实现,不用每个出水的地方都加热,这就是切面的现实应用实例。 那到软件的世界...原创 2020-04-09 11:33:51 · 496 阅读 · 0 评论 -
Spring+MyBatis组合的几种实现方式(三)使用MyBatis-Spring-Boot-Starter
1、什么是MyBatis-Spring-Boot-Starter 前面我们学习了原生MyBatis、MyBatis-Spring两种方式在你的项目中使用MyBatis的方式,可以发现原生MyBatis使用起来还是比较麻烦的,需要在代码中通过操作SqlSession、SqlSessionFactory两个类才能完成sql操作,在MyBatis-Spring中把SqlSession和SqlSessio...原创 2020-03-26 11:11:35 · 338 阅读 · 0 评论 -
Spring+MyBatis组合的几种实现方式(二)使用MyBatis-Spring
1、什么是MyBatis-Spring? MyBatis-Spring 可以帮助你将 MyBatis 无缝地整合到 Spring 中。允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 2、为什么会有MyBatis-S...原创 2020-03-25 19:26:59 · 245 阅读 · 0 评论 -
Spring+MyBatis组合的几种实现方式(一)使用原生Mybatis
Mybatis是一款优秀的ORM框架,但使用起来相对比较麻烦,不像Spring JPA(Hibernate),需要手动创建表、手动编写sql语句,这也正是Mybatis的优势之一,下面我们就以持久化一张用户表为例,介绍使用Mybatis的几种方式。 一、原生Mybatis方式 点击下载git源代码 1、原理介绍 所有Mybatis使用都依赖SqlSessionFactory实例,SqlSessio...原创 2020-03-24 19:16:15 · 419 阅读 · 0 评论 -
【问题驱动学习】-当你new一个对象的时候,JVM都做了什么?
构造器 Java代码里面用new生成一个对象的时候,JVM会执行用来请求内存的 new 指令,以及用来调用构造器的 invokespecial 指令。通过使用javap命令查看生成的字节码,就能清晰的看到。 // Foo foo = new Foo(); java代码 0 new Foo //申请内存 3 dup 4 invokespecial Foo() //调用构造器 7 a...原创 2020-03-13 12:01:58 · 156 阅读 · 0 评论 -
可能是最详细的HashMap(Java8)实现详解-原理+源码解析
1、预备知识 hash hash又称散列或杂凑,一般音译为哈希,是指一种算法、函数或数据结构,可以根据key值直接映射为存储位置,为了方便理解,见下图: 示例: 假如key是一个数字,hash函数为取余,存储为数组 key=100,hash为模10,经过hash后为0,即存储在数组的0号位置 key也可以是字符串等,采用合适的hash函数,即可将key值散列到存储数组中 链表 红黑树 红黑树是...原创 2020-03-09 16:11:31 · 611 阅读 · 0 评论