自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bean的加载(下)

5.准备创建bean一个真正干活的函数其实是以do开头的,比如doGetObjectFromFactoryBean;而给我们错觉的函数,比如getObjectFromFactoryBean,其实只是从全局角度去做些统筹的工作。这个规矩对于createBean也不例外。createBean函数完成的具体步骤及功能:(1)根据设置的class属性或者根据className来解析Class。(2)对override属性进行标记及验证。(3)应用初始化前的后处理器,解析指定bean是否存在初始化前的短路操

2022-03-13 00:32:37 109

原创 Bean的加载(上)

对于加载bean的功能,在Spring中的调用方式为:MyTestBean bean = (MyTestBean) bf.getBean(“myTestBean”)Spring加载bean的过程中所涉及的步骤大致如下:(1)转换对应beanName这里对传入的参数可能是别名,也可能是FactoryBean,所以需要进行一些列解析,这些解析内容包括如下内容:·去除FactoryBean的修饰符,也就是如果name=“&aa”,那么会首先去除&而使name=“aa”。·取指定alia

2022-03-11 21:40:54 749

原创 2022.面试题

1.AOP的理解,哪些地方用到了AOP面向切面编程,对业务逻辑的各个部分进行隔离,降低耦合性。日志,异常处理,事务处理用到了AOP2.SpringBoot的启动流程 3.MySQL索引什么时候会失效查询条件中有or索引本身失效Like查询以%开头列类型为字符串但是不带引号Not in4.用过哪些锁,有什么不同Synchronized 在同一时刻只能有一个线程得到执行,另一个线程受阻塞,必须等待当前线程执行完这个代码块以后才能执行该代码块5.用过哪些设计模式单例模式 一个对象只能有一

2022-03-10 23:21:49 1157

原创 自定义标签解析

当Spring拿到一个元素时首先要做的是根据命名空间进行解析,如果是默认的命名空间,则使用parseDefaultElement方法进行元素解析,否则使用parseCustomElement方法进行解析。1.自定义标签使用一般的做法会用原生态的方式去解析定义好的XML文件,然后转化为配置对象。这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,扩展Spring自定义标签配置大致需

2022-03-09 21:33:19 218

原创 默认标签的解析

Spring中标签包括默认标签和自定义标签两种,两种标签的用法以及解析方式存在着很大的不同默认标签的解是在parseDefaultElement函数中进行的,函数中的功能逻辑一目了然,分别对4种不同标签(import、alias、bean和beans)做了不同的处理。1.bean标签的解析及注册在4种标签的解析种,对bean标签的解析最为复杂也最为重要,所以我们从此标签开始深入分析,如果能理解此标签的解析过程,其他标签的解析自然会迎刃而解。大致的逻辑总结如下:①.首先委托BeanDefinitio

2022-03-08 19:51:56 285

原创 Spring容器的基本实现

1.容器的基本用法bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水也便没什么用处了。Spring的目的就是让我们的bean能成为一个纯粹的POJO,这也是Spring所追求的。2.功能分析bean完成的功能无非就是以下几点:·读取配置文件·根据配置文件中的配置找到对应的类的配置,并实例化。·调用实例化后的实例如果需要完成我们预想的功能,至少需要3个类。·ConfigReader:用于读取及验证配置文件·ReflectionUt

2022-03-07 21:31:30 475

原创 Spring整体架构

Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示。Spring整体架构图1.Core ContainerCore Container(核心容器)包含有Core、Beans、Context和Expression Language模块。Core和Beans模块是框架的基础部分,提供IOC(控制反转)和依赖注入特性。·Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类,Core模块是其他组件的基本核心。

2022-03-06 21:06:04 3626

原创 垃圾收集器与内存分配策略(下)

5.内存分配与回收策略Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。(1)对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机将发起以下Minor GC。(2)大对象直接进入老年代所谓的大对象是指,需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串以及数组。大对象对虚拟机的内存分配来说就是一个坏消息,经常出现大对象容易导致内存还有不少空间时就提前触发

2022-03-06 14:10:13 350

原创 垃圾收集器与内存分配策略(中)

3.HotSpot的算法实现在HotSpot虚拟机上实现对象存活判定算法和垃圾收集算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。(1)枚举根节点可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行——这里“一致性”的意识是指在整个分析期间整个执行系统看起来像被冻结在某个时间点上,不可以出现分析过程中对象引用关系还在不断变化的情况,该点不满足的话分析结果准确性就无法得到保证。在类加载完成的时候,HotSpot就把对象内什么偏移量上是什么类

2022-03-06 00:20:31 53

原创 垃圾收集器与内存分配策略(上)

当需要排查各种内存溢出,内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。1.在对里面存放着Java世界几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)(1)引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。(引用计数算法的实现简单,判定

2022-03-04 21:56:11 59

原创 Java虚拟机运行时数据区域

根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域:1.程序计数器(Program Counter Register)(线程私有)程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成。每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。2.Java虚拟机栈(Java Virt

2022-03-04 21:09:52 456

mybatis逆向工程分页查询方法

mybatis逆向工程分页查询方法,适合初学者学习,在mybatis逆向工程生成的程序基础上加上了分页查询的方法,组成了一个完整的增删改查

2019-03-24

空空如也

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

TA关注的人

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