自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mybatis源码篇(一) Mybatis中优秀的反射工具类

优秀的框架必然有着优秀的工具类,而我们在阅读优秀的框架之前先熟悉这些优秀的工具类会为我们读源码的时候减少不少的障碍,正所谓:磨刀不误砍柴工嘛;而且,当我们掌握了这些优秀的工具类,即使我们不去阅读源码,当我们在实际项目中也可以直接使用这些优秀的框架,拿来主义,该拿的时候我们还得拿。...

2022-07-02 17:45:06 569 1

原创 Mybatis源码篇(二)配置文件解析

Mybatis的整个底层流程其实可以分为两个大的部分:一个是配置文件加载解析的过程;另一个是方法执行的流程。前者是后者的基础,只有配置文件都加载好了,后面我们执行方法的时候,才能及时且方便的拿到我们需要拿到的信息。本文我们就从源码的角度来分析分析整个Mybatis的加载流程。文末会有彩蛋哦。...

2022-07-02 17:43:20 313

原创 SLF4J--日志门面担当

Any problem in computer science can be solved by anther layer of indirection.

2022-06-24 15:00:25 220

原创 细谈Spring的事件监听机制

本文主要从思想和源码的角度细谈Spring的监听机制

2022-05-14 20:49:11 1918

原创 SpringBoot加载配置文件原理分析

本文是基于SpringBoot2.4.0之前的版本分析的,2.4.0之后有所不同想必大家对SpringBoot中的application.properties(或application.yaml)文件都是再熟悉不过的了。它是应用的配置文件,我们可以把需要的一些配置信息都写在这个文件里面,需要的时候,我们可以通过@Value注解来直接获取即可,那这个文件是什么时候以及如何被应该加载的呢?这一直是我之前疑惑的地方,也是终于有时间对这一部分进行了详细的源码分析。原理先行整个配置文件的加载过程其实就是一个.

2022-05-08 19:31:01 3268 2

原创 二叉树的三种遍历方式

众所周知,二叉树主要有前序遍历,中序遍历以及后序遍历这三种主要的方式,那我们就先来解释下这种遍历的含义:1、前序遍历:若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。2、中序遍历:若二叉树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根结点的左子树,然后访问根结点3、后序遍历:若二叉树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后访问根结点。树结构的思想主要就是递归,因为二叉树从根结点出发,一般有着左子树和右.

2022-04-20 18:35:28 10991

原创 Redis中Pipeline的使用

写在前面: 我们通常是通过使用RedisTemplate每次执行一个命令,这在命令不多的情况下是可以接收的,当我们需要执行大量的命令时,如果一条一条的执行,就会因为通信次数的增加而产生延迟。因此,Redis也引入了pipeline的机制来提升性能,我们可以通过pipeline将所有需要执行的命令,一次性的提交给Redis的服务端,然后挨个执行,这样就会大大的减少通信次数,从而提升性能。当然了,需要注意的是:输入的所有命令中:一个命令的执行结果不影响另一个命令的输入1、两种调用方式在Spring环境下.

2022-04-12 18:30:02 5983

原创 Redis的持久化机制

最近在看《Redis In Action》这本书,买了好久了,开始因为书里的代码是python的就先搁置了,现在又拿起来读了读,发现这书还挺不错的。Redis学习以及项目中使用已经用了很久了,也该整一个Redis专栏来总结总结了,那就先从重要而开发人员又容易忽视但面试却又经常被问到的Redis的持久化开始聊吧1、从官方文档说起Redis的管方文档是十分详细的,关于 Redis的持久化 ,文当中详细的介绍了两种持久化方式,即:RDB (Redis Database)和AOF(Append Only F.

2022-04-11 14:04:56 877

原创 Flowable使用初体验

最近在公司接手了工作流这一块的任务,使用的技术框架是Flowable。对于工作流这块,之前自己也是没有接触过的,一开始听到把工作流交给我也是很慌的,好在项目组的大哥手把手的给我讲了讲整个工作流的逻辑,加上查看Flowable的官方文档,渐渐的也就掌握了。1、从Flowable的官方文档说起找了一个汉化后的官方文档:https://tkjohn.github.io/flowable-userguide/#_introduction可以说,这个官方文档算是很详细的了,从是什么,到怎么用,以及和其他.

2022-04-08 15:03:44 1169

原创 跨域及其解决方案

一、何为跨域1、同源策略在谈跨域之前,首先来说说同源策略吧;同源策略是浏览器的一种基本的安全功能,其中的源指的就是协议名+域名+端口号,也即只有这三者都相同才是同源的,否则就属于不同源,比如说下面的几个请求:1. http://www.abc.com:80802. https://ww.abc.com:80803. http://www.abcd.com:80804. http://www.abc.com:80815. http://www.abc.com:8080/sds请求2,3,4和请

2021-08-24 22:46:45 96

原创 初探Spring的事件监听机制

本文主要是聊一聊Spring中的事件机制1、 事件监听你以为就一个@EventListener?首先,在容器刷新的this阶段,Spring有了白手起家的4个组件:ConfigurationClassPostProcessor、AutowiredAnnotationBeanPostProcessor、EventListenerMethodProcessor、DefaultEventListenerFactory,对于这四个组件:ConfigurationClassPostProcessor是来处理配.

2021-03-31 12:54:48 680

原创 MyBatis中mapper的注册过程

在解析mybatis的全局配置文件的子节点时,是有4种情况的:<mapper resource="com/blog4java/mybatis/example/mapper/UserMapper.xml"/><mapper url="file:///mybatis/com/blog4java/mybatis/example/mapper/UserMapper.xml"/><mapper class="com.blog4java.mybatis.com.blog4java.m

2021-02-05 20:57:07 470

原创 基于注解Spring源码分析(二)

上篇介绍了ioc容器创建时调用的前两个方法,现在我们来讲ioc创建的重头戏:refresh()方法:重头戏:容器刷新refresh()来看refresh()方法:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. //准备刷新容器

2020-06-01 21:06:53 195

原创 基于注解Spring源码分析(一)

自己在学习Spring源码之余,所做的复习笔记,仅供参考。话不多少,先来分析容器的建立过程吧。在Spring环境下,我们通过以下代码就可以或得到ioc容器:`AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);获取容器的代码是很简单的,那到底Spring为我们做了哪些活,让开发变的如此简单呢,我们走进代码的背后继续看看:publ

2020-05-27 15:12:07 253

原创 web项目的三层结构介绍

一、对于web项目的三层结构介绍一般web项目的结构分为三层,即DAO层,Service层、Web层。下面对这三个层次进行详细介绍:1、DAO层又叫持久层,是用来与数据库进行交互的,即对数据库进行增删改查操作;一般会有一个BaseDAO其中包含对数据库进行纯粹的增删改、查询对象(集)、查询特殊数据等三种方法。然后对于2、Service层又叫业务层,是...

2020-03-25 18:23:56 9132

基于java的KNN算法实现二分类问题

使用java实现的KNN算法,并进行了二分类问题,不懂的可以交流。适合初学者使用 ,可以下载看一看

2020-06-01

空空如也

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

TA关注的人

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