自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Tomcat底层分析

其主要实现来自Servlet容器,而这个容器就对应到了1里面的容器Container,如果将这个Servlet扔到Tomcat里面去,那么这个接口就是由Tomcat实现的,到Jetty里面去,就是由Jetty实现的,我们来看Tomcat源码,Tomcat源码里面也对应有一个HttpServletRequest接口。我们来看HttpServlet的doGet方法,这个方法主要是来处理get请求的,发现请求主要来自HttpServletRequest,这是一个接口,那它的实现类是什么呢?

2024-09-04 16:24:50 1558

原创 Spring整合Mybatis底层实现

最后走到了这里执行setString方法将参数的值设置进去,这也就能解释为什么#{param1}为什么没有SQL注入的风险,因为在设置值时直接将其属性改成了String,而对于${param1}这种,由于是在过程中动态设置的,那么并没有为其进行更改,就会由SQL注入的风险。SQL其实分成两种,一种是静态的,一种是动态SQL的,静态SQL是用#{}来占位的,而动态SQL是用${}来占位的,静态SQL在解析完配置文件之后就会变成?我们在写业务时常常这样写,但是,等等,UserMapper不是一个接口吗?

2024-08-26 22:00:28 1464

原创 HashMap底层分析

发现这个算法算出来其实就是取了hashcode的低位,由于hashcode是随机的,那么其低位也是随机的,同时结果也满足在数组长度以内,同时由于是位运算,效率要比取余快得多,同时这也是为什么length要为2的幂数,取2的倍数时,length-1就会出现低位全1,这样就可以取到hashcode的低位了,可是hashmap是怎么保证length一定是2的幂数呢?其实核心思想就是算出前导0个数,然后将后续位置全部补成1,就像10的时候,前导0个数为28,那么后4位全部补成1,然后加1输出就是2的幂次方数了。

2024-08-24 22:14:27 1345

原创 JAVA双亲委派机制以及如何打破

注意:为什么parent==null时去执行从启动类加载器中加载的原因是启动类加载器是jvm层面的,是由c++语言实现的,没有暴露给Java层,所以在Java中是获取不到的,所以返回的是null。发现在进行这个方法时,不可避免的需要用到java自身的包,而写的加载器里面并没有去加载java自身的类,所以会报错。在进行类加载时,子类加载器会优先将类加载过程交给其父类加载器进行类加载过程,逐层往上抛,当父类加载器没有找到所需要加载的类时,子类类加载器才会去加载。这样就没啥问题了,成功绕过了双亲委派机制!

2024-08-22 16:33:35 260 1

原创 Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

2023-03-20 09:41:24 141

空空如也

空空如也

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

TA关注的人

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