- 博客(19)
- 收藏
- 关注
原创 VUE生命周期......l
发送请求 启动定时器 绑定自定义事件订阅消息等初始工作。解绑自定事件 清除定时器取消订阅消息等收尾工作。初始化之前创建无法访问data中的数据。()new一个Vue对象。可以访问data中的数据。
2022-09-18 13:44:17
211
原创 浅析Shiro和Security的核心模块以及两者的区别
主体,这个对象是 Shiro 中最核心的对象,它是主体的抽象,代表了用户,包括用户的身份信息和一些行为(认证、注销、授权校验、获取 Session 等),认证其实就是登录的意思。默认 Web 安全管理器,它是 SecurityManager(安全管理器) 的实现,同样负责管理 Web 方面的安全认证和授权,我们写好的 Realm 需要放到这个管理器中。Shiro 过滤器,这个对象中包含了两个重要的功能(认证和授权),但它是一个空的对象,需要我们自己根据项目的需求,在这个过滤器中编写认证和授权的逻辑代码。
2022-09-05 08:51:43
247
原创 Redis单线程设计的但为什么这么快
多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,于是程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且只依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。这里我们一直在强调的单线程,只是在处理我们的网络请求的时候只有一个线程来处理,一个正式的Redis Server运行的时候肯定是不止一个线程的,这里需要大家明确的注意一下!
2022-08-24 11:52:07
64
原创 redis的数据删除策略
redis开辟了一个存放值的地址和对应过期时间的空间,删除策略相当于是维护这个空间中的东西,上面存的值不变。Redis也不是马上删除数据,而是先进行标记,让其在内存中再多呆一会儿,等到满足一定条件的时候再进行统一删除。缺点:CPU压力很大,无论CPU此时负载量多高,均占用CPU,会影响redis服务器响应时间和指令吞吐量;周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度。创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即干掉key值;
2022-08-21 18:38:17
181
原创 SpringBoot自动装配原理
通俗的讲,它可以根据你在 pom.xml 添加的依赖,“推测”出你需要用什么配置,并且可以帮你配置好。举个例子,比如你添加了一个 spring-boot-starter-web 的依赖,他就“推测”出你要开发web项目,他就会帮我们把web和SpringMVC的配置帮我们配置好。比如,在WebMvcAutoConfiguration自动配置类中,贴了很多条件注解,触发了某些条件,就会根据这些条件来创建对象,并交给Spring容器管理。扫描该类所在的包下所有的类,把符合扫描规则的类装配到容器中。...
2022-08-14 12:03:20
66
原创 Spring 循环依赖问题的解决方法
当A、B两个类发生循环引用时,在A完成实例化后,就使用实例化后的对象去创建一个对象工厂,添加到三级缓存中,如果A被AOP代理,那么通过这个工厂获取到的就是A代理后的对象,如果A没有被AOP代理,那么这个工厂获取到的就是A实例化的对象。:调用对象工厂的getObject方法来获取到对应的对象,得到这个对象后将其注入到B中。:当B创建完后,会将B再注入到A中,此时A再完成它的整个生命周期。,存储的是提前暴露的一个单例工厂,二级缓存中存储的就是从这个工厂中获取到的对象。,存储的是所有创建好了的单例Bean。...
2022-08-07 12:31:00
65
原创 spring框架中Bean的生命周期
·Spring Bean的生命周期只有四个阶段:实例化 Instantiation =>属性赋值Populate =>初初始化lnitialization => 销毁 Destruction. Step1实例化 Bean:对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入,另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的住信
2022-07-31 17:12:45
107
原创 @Autowired原理
找到就装配,找不到就拉倒@Autowired(required=false)....(required属性规定必需在提交之前填写输入字段。1)、先按照类型去容器中找到对应的组件bookService=ioc.getBean(BookService.class)1)、按照变量名作为id继续匹配BookServiceBookServiceExt。2)、找不到报错。发现Autowired标注的自动装配的属性默认是一定装配上的。1)、找到一个找到就赋值。2)、没找到抛异常。...
2022-07-24 14:58:36
310
原创 servlet中 servlet context与 session与 request三个对象的常用方法和存放数据的作用域。
servlet context常用方法:String getInitParameter (String name ) :获取名为name的系统范围的初始化参数值,系统范围的初 始化参数可在部署描述符中使用元素定义
2022-07-03 14:27:24
165
原创 MyBatis如何实现多表查询(一对一、一对多)
首先在xml配置文件中一对一:在@ResultMap标签中使用association标签映射关系一对多:在@ResultMap标签中使用collection标签映射关系注解在@Results注解中的@Result注解中使用@One注解在@Results注解中的@Result注解中使用@Many注解...
2022-06-22 21:55:57
63
原创 MySql的事务是什么?什么是脏读?幻读?不可重复读?
事务:就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所欲SQL都精被取消执行。特点:一个事务中如果有一个数据库操作失败,那麽整个事务的所有数据库操作都会失败,数据库就会回滚到该事务开始之前的状态。限制:MySQL数据库中仅InnoDB和BDB类型的数据库表支持事务。四大原则:原子性:意味着数据库中的事务执行是作为原子粒度。即不可再分,整个语句要么执行,要么不执行。一致性:即事务开始之前和结束以后数据库的完整性约束没有被破坏。隔离性:互不干扰,即一...
2022-06-19 14:41:58
106
原创 Linux负载
查看Linux负载命令详解负载是机器的一个重要指标,直观反应了机器当前的状态负载查看 uptime命令可以显示的信息显示依次为:现在时间、系统已运行时间、目前有多少登录用户,指系统在过去1,5,15分钟内的平均负载。 free 可以显示当前系统未使用和已使用的内存数目,还可以显示被内核使用的内存缓冲区; mpstatCPU核状态i...
2022-06-10 21:36:51
92
原创 线程的实现方式总结
/*线程的实现方式总结* 继承Thread类重写run方法,在方法体中写你的需求。Thread类实现Runnable接口重写run方法* (建议使用)Runnable接口,实现接口或者使用匿名内部类的格式,重写里面的抽象方法run方法,在方法体中写你的需求* (建议使用)Callable接口,实现接口或者使用匿名内部类的格式,重写里面的抽象方法call方法,在方法体中写你的需求*线程和任务分离,解耦合 ,提高代码的健壮性*避免Java单继承的局限性*线程池里面只能传入Ru...
2022-06-03 12:12:03
79
原创 【集合简介】
单列集合collection总接口* 分支(实现了collection接口)...(list、set)* list有索引值、可以重复、有序* 实现了list接口* arraylist:底层数据结构是数组:查询快增删慢* 数组直接通过索引值去找元素所以查询快* 比如数组较长,你删第一个元素后面的每个元素都要向前挪一位。* 动的元素较多耗费时间空间较多所以增删慢,添加也要挪** linkedlist:底层数据结构是链表:查询慢增删快* 双向链表前面是...
2022-05-26 13:00:00
99
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人