- 博客(14)
- 收藏
- 关注
原创 02-CPU是如何执行任务的
理解 CPU 是如何读写数据的前提,是要理解 CPU 的架构,CPU 内部的多个 Cache + 外部的内存和磁盘 都就构成了⾦字塔的存储器结构,在这个⾦字塔中,越往下,存储器的容量就越⼤,但访问速度就会⼩。CPU 读写数据的时候,并不是按⼀个⼀个字节为单位来进⾏读写,⽽是以 CPU Line ⼤⼩为单位,CPU Line ⼤⼩⼀般是 64 个字节,也就意味着 CPU 读写数据的时候,每⼀次都是以 64 字节⼤⼩为⼀块进⾏操 作。
2022-09-26 10:02:14
288
原创 01-缓存一致性问题
随着时间的推移,CPU 和内存的访问性能相差越来越⼤,于是就在 CPU 内部嵌⼊了 CPU Cache(⾼速缓 存),CPU Cache 离 CPU 核⼼相当近,因此它的访问速度是很快的,于是它充当了 CPU 与内存之间的 缓存⻆⾊。CPU Cache 通常分为三级缓存:L1 Cache、L2 Cache、L3 Cache,级别越低的离 CPU 核⼼越近,访问 速度也快,但是存储容量相对就会越⼩。
2022-09-26 10:00:55
134
原创 09-@Value注解
/@1}要求标注@RefreshScope注解的类支持动态刷新@Value的配置@1:这个地方是个关键,使用的是ScopedProxyMode.TARGET_CLASS下面类中有几个无关的方法去掉了,可以忽略//来个map用来缓存bean//@1}}/*** 清理当前*/}@Override}}}
2022-09-23 11:11:35
1125
原创 08-Spring父子容器
创建spring容器的时候,可以给当前容器指定一个父容器。本文需掌握父子容器的用法,了解父子容器的特点:子容器可以访问父容器中bean,父容器无法访问子容器中的beanBeanFactory接口支持层次查找ListableBeanFactory接口不支持层次查找BeanFactoryUtils工具类中提供了一些非常实用的方法,比如支持bean层次查找的方法等等。
2022-09-23 11:10:35
203
3
原创 06-注解
有些项目,前期可能采用xml的方式配置bean,后期可能想采用spring注解的方式来重构项目,但是有些老的模块可能还是xml的方式,spring为了方便在注解方式中兼容老的xml的方式,提供了@ImportResource注解来引入bean定义的配置文件。spring在创建bean的时候,如果bean之间没有依赖关系,那么spring容器很难保证bean实例创建的顺序,如果想确保容器在创建某些bean之前,需要先创建好一些其他的bean,可以通过@DependsOn来实现,
2022-09-22 18:05:53
98
原创 05-单例bean中使用多例bean(三种方式)
*** @param obj 被替换方法的目标对象* @param method 目标对象的方法* @param args 方法的参数}当调用目标对象需要被替换的方法的时候,这个调用请求会被转发到上面的替换者的reimplement方法进行处理。/*** servieB的方法替换者} }lookup-method:方法查找,可以对指定的bean的方法进行拦截,然后从容器中查找指定的bean作为被拦截方法的返回值。
2022-09-21 23:20:03
1141
原创 04-bean的创建和销毁
无依赖的bean创建顺序和定义的顺序一致,销毁顺序刚好相反通过构造器强依赖的bean,会先创建构造器参数中对应的bean,然后才会创建当前bean,销毁顺序刚好相反depend-on可以指定档期bean依赖的bean,通过这个可以确保depend-on指定的bean在当前bean创建之前先创建好,销毁顺序刚好相反bean的销毁顺序和bean创建的顺序相反。
2022-09-21 23:19:14
167
原创 03-依赖注入
本文主要讲解了xml中bean的依赖注入,都是采用硬编码的方式进行注入的,这种算是手动的方式注入普通类型通过value属性或者value元素设置注入的值;注入对象如果是容器的其他bean的时候,需要使用ref属性或者ref元素或者内置bean元素的方式还介绍了其他几种类型List、Set、Map、数组、Properties类型的注入。
2022-09-21 21:12:02
152
原创 02-Spring的scope
有时候,spring内置的几种scope都无法满足我们的需求的时候,我们可以自定义bean的作用域自定义作用域三步骤下面我们来实现一个线程级别的bean作用域,同一个线程中同名的bean是同一个实例,不同的线程中的bean是不同的实例。要求bean在线程中是共享的。
2022-09-21 21:11:13
160
原创 01-Spring容器基本使用及原理
负责对象的,对象的整个生命周期都是由容器来控制的。当我们需要使用的时候直接从ioc容器中直接获取就可以了。spring ioc容器时如何知道需要管理哪些对象的?需要我们给ioc容器提供一个配置清单,这个配置和,当spring容器启动时,就会加载这个配置文件,然后将这些对象给组装好以供外部访问者使用。这里所说的ioc容器也叫spring容器。
2022-09-21 21:10:17
191
原创 缓存穿透 击穿 雪崩
缓存穿透是指客户端请求的数据再redis缓存中和数据库中都不存在这样缓存永远不会生效,这些请求都会达到数据库中。在查询缓存时客户端首先将请求交给redis处理,发现redis中没有数据后查询数据库,此时redis中也没有数据,就不会建立缓存。那么如果客户端频繁查询该key对应的value就会导致请求频繁的打到数据库。这种现象叫做缓存穿透缓存空对象:当客户端查询时,即使数据库中没有数据,也将客户端传递过来的key缓存再redis中,value可以设置为null,这样当客户端频繁的查询该key时,就不会将请求打
2022-07-11 18:15:11
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人