10 2022 档案
摘要:一、 Spring整合SpringMVC Spring整合SpringMVC唯一的体现就是父子容器:、 通常我们会设置父容器(Spring)管理Service、Dao层的Bean, 子容器 (SpringMVC)管理Controller的Bean 子容器可以访问父容器的Bean, 父容器无法访问子容
阅读全文
摘要:一、从Servlet到SpringMVC 1. Servlet MVC最典型就是JSP + servlet + javabean的模式 弊端: xml下配置servlet映射非常麻烦 开发效率低 必须要继承父类、重写方法 侵入性强 如果想在一个Servlet中处理同一业务模块的的功能分发给不同方法进
阅读全文
摘要:一、整合核心思路 由很多框架都需要和Spring进行整合,而整合的核心思想就是把其他框架所产生的对象放到Spring容器中,让其成为Bean,只要成为了Bean,在Spring项目中就能很方便的使用这些对象了,也就能很方便的使用Mybatis框架所提供的功能了。 二、Mybatis-Spring 1
阅读全文
摘要:# 一、 数据库范式 - 第一范式(**原子性**):1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; - 第二范式(**完全依赖**):2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性,有个主键 - 第三范式(**没有传递依赖**):3NF是对字段冗余性的约束,即任何字段
阅读全文
摘要:# Mysql索引的数据结构与算法 ## 一、索引 索引是高效获取**排好序**的**数据结构**。 索引本身就是数据一**部分关键信息**,通过索引大大减少索引的数据量。 索引信息需要**额外的空间存储**。创建和维护索引本身也会降低对数据的操作性能。 大多数情况下,索引查询都是比全表扫描要快的。
阅读全文
摘要:一、 @EnableTransactionManagement 开启Spring事务本质上就是增加了一个Advisor,但使用@EnableTransactionManagement注 解来开启Spring事务是,该注解代理的功能就是向Spring容器中添加了两个Bean: AutoProxyReg
阅读全文
摘要:一 、 动态代理 代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 不修改UserService类的源码前提下,给test()增加额外逻辑,那么就可以使用动态 代理机制来创建UserService对象 动态代理技术具体实现方式有jdk动态代理(基
阅读全文
摘要:解析配置类 流程如下: 在启动Spring时,需要传入一个AppConfig.class给ApplicationContext,ApplicationContext 会根据AppConfig类封装为一个BeanDefinition,这种BeanDefinition我们把它称为配置类 BeanDefi
阅读全文
摘要:前言 一般来说,spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程 spring的启动主要做了这么几件事情: 构造一个BeanFactory对象 解析配置类,得到BeanDefinition,并注册到BeanFactory中 解析@Componen
阅读全文
摘要:首先基础常识一个类通常有两个构造方法,一个有参的,一个无参的。对象创建默认使用无参构造。 在spring中,只有一个无参的构造方法,那么实例化就只能使用这个无参构造。 一、只一个有参构造 但只有一个有参的构造方法,那么实例化时能使用这个构造方法吗?要分情况了: 使用AnnotationConfigA
阅读全文
摘要:一、什么是循环依赖 就是A对象依赖了B对象,B对象依赖了A对象。 A a = new A(); B b = new B(); a.b = b; b.a = a; 如果不考虑Spring,循环依赖并不是问题,因为对象之间相互依赖是很正常的事情。 为什么在Spring中循环依赖就是一个问题了? 因为在S
阅读全文
摘要:1、依赖注入方式 手动注入 自动注入 1.1 手动注入 在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。 // 底层是通过Set方法注入 <bean name="userService" class="com.luban.service.UserService"> <pr
阅读全文
摘要:Spring最核心的功能之一就是创建对象(IOC) Bean的生命周期指:在spring中,一个Bean的生成和销毁的过程 启动ApplicationContext 创建BeanFactory 初始化BeanFactory 执行BeanFactory后置处理器 进行扫描 生成BeanDefiniti
阅读全文
摘要:| 可用性级别 | 系统可用性% | 宕机时间/年 | 宕机时间/月 | 宕机时间/周 | 宕机时间/天 | | : | : | : | : | : | : | | 不可用 | 90% | 36.5 天 | 73 小时 | 16.8 小时 | 144 分钟 | | 基本可用 | 99% | 87.6
阅读全文
摘要:高并发现用来指大流量、高请求的业务情景,比如春运抢票,电商双十一,秒杀大促等场景。 1、高并发的度量指标 并发的指标一般有 QPS 每秒查询率(Queries-per-second) TPS 每秒事务的处理量(Transaction Per Second) IOPS 每秒进行读写操作的次数(Inpu
阅读全文
摘要://二分法判断一个数是否存在(有序数组) public static Boolean BSExist(int[] arr, int num) { if (arr == null || arr.length == 0) { return false; } int L = 0; int R = arr.
阅读全文
摘要:// 插入排序 从左扩大范围 最小值放在最右边 public static void insertionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 1; i < arr.length; i
阅读全文
摘要:// 冒泡排序 从右缩小范围 最小值放在最右边 public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = arr.length - 1; i > 0;
阅读全文
摘要:// 从0下标开始顺序 找到最小值的下标交换对应下标的值 public static void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 0; i < arr.leng
阅读全文
摘要:位运算相关 对于有符号的的而言: 二进制的最高位是符号位(0正1负) 正数的原码反码补码都一样 负数的反码 = 它的原码符号位不变,其他位取反 负数的补码 = 它的反码 +1, 负数的反码 = 负数的补码 -1 0的反码补码都是0 Java 没有无符号位,换言之Java的数据都是有符号的 在计算机运
阅读全文