2022年3月8日
摘要: 线程池与线程对比: 线程方式 import java.util.ArrayList; import java.util.List; import java.util.Random; /*** * 使用线程的方式去执行程序 */ public class ThreadTest { public sta 阅读全文
posted @ 2022-03-08 23:54 路仁甲 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 并发和并行 目标都是最大化CPU的使用率 并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 ​ 并发(concurrency): 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时 阅读全文
posted @ 2022-03-08 23:51 路仁甲 阅读(134) 评论(0) 推荐(0) 编辑
摘要: CPU高速缓存(Cache Memory) CPU高速缓存 CPU缓存即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据 阅读全文
posted @ 2022-03-08 23:47 路仁甲 阅读(363) 评论(0) 推荐(0) 编辑
摘要: SpringBoot启动流程: 调用SpringApplication.run启动springboot应用 public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args); 阅读全文
posted @ 2022-03-08 23:40 路仁甲 阅读(89) 评论(0) 推荐(0) 编辑
摘要: Springboot自动装配原理详解 传统配置 1)传统ssm整合redis的时候 需要在xml的配置文件中 进行大量的配置Bean 第一步:加入依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>sprin 阅读全文
posted @ 2022-03-08 23:33 路仁甲 阅读(110) 评论(0) 推荐(0) 编辑
摘要: SpringMVC之请求处理流程 我们知道DispatcherServlet就是一个HttpServlet,而HttpServlet的请求就从doGet/doPost开始 DispatcherServlet本身没有实现doGet/doPost,而由他的父类FrameworkServlet实现,源码如 阅读全文
posted @ 2022-03-08 23:31 路仁甲 阅读(316) 评论(0) 推荐(0) 编辑
摘要: Servlet项目启动执行顺序 由前面的回顾内容可知,Servlet项目启动执行顺序如下 ServletContainerInitializer.onStartup(Set<Class<?>> c, ServletContext ctx) ServletContextListener.context 阅读全文
posted @ 2022-03-08 23:29 路仁甲 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 手写简易SpringMVC 思路分析: 1.启动tomcat 2.spi机制加载spring容器,扫描包,生成bean,并且将注解解析到Map<String,RequestMappingInfo> map中 3.get/post请求时,. 根据url获取对应的RequestMappingInfo对象 阅读全文
posted @ 2022-03-08 23:26 路仁甲 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 通过url访问资源有三个步骤: 接收请求 处理请求 响应请求 web服务器:将某个主机上的资源映射为一个URL供外界访问,完成接收和响应请求 servlet容器:存放着servlet对象(由程序员编程提供),处理请求 Servlet接口 Servlet接口定义了5种方法: init() servic 阅读全文
posted @ 2022-03-08 23:24 路仁甲 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 简单工厂——BeanFactory 实现方式: BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一 阅读全文
posted @ 2022-03-08 23:19 路仁甲 阅读(57) 评论(0) 推荐(0) 编辑
摘要: Spring事务 Spring事务使用 我们以JdbcTemplate为例,其他orm框架也是一样的原理 配置类 @EnableTransactionManagement @Configuration @ComponentScan("com.yoocar.spring") public class 阅读全文
posted @ 2022-03-08 23:17 路仁甲 阅读(69) 评论(0) 推荐(0) 编辑
摘要: Spring之整合Mybatis 整合核心思路 由很多框架都需要和Spring进行整合,而整合的核心思想就是把其他框架所产生的对象放到Spring容器中,让其成为Bean。 比如Mybatis,Mybatis框架可以单独使用,而单独使用Mybatis框架就需要用到Mybatis所提供的一些类构造出对 阅读全文
posted @ 2022-03-08 23:15 路仁甲 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 循环依赖 什么是循环依赖? 很简单,就是A对象依赖了B对象,B对象依赖了A对象。 比如: // A依赖了B class A{ public B b; } // B依赖了A class B{ public A a; } 那么循环依赖是个问题吗? 如果不考虑Spring,循环依赖并不是问题,因为对象之间 阅读全文
posted @ 2022-03-08 23:14 路仁甲 阅读(81) 评论(0) 推荐(0) 编辑
摘要: Spring之AOP 动态代理 代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 比如,现在存在一个类: public class UserServiceCGlib { public void test() { System.out.printl 阅读全文
posted @ 2022-03-08 23:11 路仁甲 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Spring依赖注入的方式 依赖注入底层原理流程图: https://www.processon.com/view/link/5f899fa5f346fb06e1d8f570 首先分两种: 手动注入 自动注入 手动注入 在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。 < 阅读全文
posted @ 2022-03-08 23:09 路仁甲 阅读(134) 评论(0) 推荐(0) 编辑
摘要: Spring之Bean生命周期 Bean的生命周期 Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的 Bean生命周期流程图 Bean的生成过程 主要源码流程:scan getBean--doGetBean--createBean--doCreateBean 1. 解 阅读全文
posted @ 2022-03-08 23:06 路仁甲 阅读(75) 评论(0) 推荐(0) 编辑
摘要: Spring启动过程 通常,我们说的Spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程。代码如下 AnnotationConfigApplicationContext applicationContext=new AnnotationConfigA 阅读全文
posted @ 2022-03-08 22:57 路仁甲 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 核心概念介绍 BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。 比如: String: getBeanClassName: 返回当前bean definition定义的类名 ConstructorArg 阅读全文
posted @ 2022-03-08 22:55 路仁甲 阅读(54) 评论(0) 推荐(0) 编辑
摘要: Mybatis中的设计模式 虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。 Mybatis至少遇到了以下的设计模式的使用: Builder模式,例如SqlSessio 阅读全文
posted @ 2022-03-08 22:46 路仁甲 阅读(41) 评论(0) 推荐(0) 编辑
摘要: Mybatis插件原理 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调 阅读全文
posted @ 2022-03-08 22:40 路仁甲 阅读(233) 评论(0) 推荐(0) 编辑