自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断 A 类/接口是否为 B 类/接口的子类/接口

父.class.isAssignableFrom(子.class)

2023-09-11 20:57:30 75

原创 Nginx 基础笔记

下载 nginx 安装包解压安装包配置、编译、安装。

2023-06-18 22:48:00 117

原创 Elasticsearch 索引和文档 CRUD

Elasticsearch 索引和文档 CRUD

2022-07-28 00:05:58 248 1

原创 Spring 依赖查找与依赖注入来源区别

Spring 依赖查找与依赖注入来源区别

2022-07-17 15:26:22 97

原创 Redis 缓存问题(Redis 与 DB 更新一致性问题、缓存击穿、缓存穿透、缓存雪崩)

Redis 缓存问题(Redis 与 DB 更新一致性问题、缓存击穿、缓存穿透、缓存雪崩)

2022-07-11 23:45:56 397

原创 事务的 ACID 特性

事务 ACID原子性(atomicity): 一个事务被视为不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。隔离性(isolation):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括未提交读(Read uncommi

2021-09-27 17:56:20 87

原创 Java 泛型详解

介绍JDK 5.0 引入的语言特性通常在容器或容器的子接口中使用编译器在编译时可以检查程序的类型正确性为什么需要泛型在编译时进行更强的类型检查Java 编译器对泛型代码应用强类型检查,并在代码违反类型安全时发出错误。 修复编译时错误比修复运行时错误更容易,后者很难发现。消除类型转换实现通用算法通过使用泛型,程序员可以实现适用于不同类型集合的泛型算法,并且类型安全且易于阅读。泛型与泛型子类型泛型类型声明并不会因为泛型的不同而存在多个副本,泛型类型声明只会编译一次,并编译成

2021-08-17 17:49:19 163

原创 MySQL EXPLAIN Extra Information

The Extra column of EXPLAIN output contains additional information about how MySQL resolves the query. The following list explains the values that can appear in this column. Each item also indicates for JSON-formatted output which property displays the Ext

2021-08-10 07:03:06 296

原创 MySQL 45 讲笔记

查看 MySQL 版本select version();version() 5.7.31 MySQL 连接命令mysql -h$ip -P$port -u$user -p查看连接show processlist;# 或者select * from information_schema.processlistId User Host db Command Time State Info 1971 root

2021-08-10 06:54:57 396

原创 JDK 动态代理

public interface IService{ Object execute(Object... args);}public class ServiceImpl implements IService{ private Object execute(Object... args){ // do execute }}// 静态代理public class ProxyService implements IService{ private final

2021-04-08 00:13:16 160

原创 Spring 应用上下文生命周期

Spring 应用上下文启动准备阶段org.springframework.context.support.AbstractApplicationContext#prepareRefresh()启动时间 - startupDate状态标识 - closed(false)、active(true)初始化 PropertySources - initPropertySources()检验 Environment 中必须属性初始化事件监听器集合初始化早期 Spring 事件集合BeanF

2021-03-27 21:54:29 89

原创 Spring autowired 属性注入候选 Bean 数量大于一个时选择注入 Bean 的优先级

Spring autowired 属性注入候选 Bean 数量大于一个时注入 Bean 的优先级结论标记有 @Qualifier 的 autowired 属性会在 DefaultListableBeanFactory#doResolveDependency -> resolveMultipleBeans(descriptor, beanName, autowiredBeanNames, typeConverter) -> … -> QualifierAnnotationAutowir

2021-03-22 21:50:12 326

原创 Redis的渐进式Rehash

Redis 键值对的数据结构为了实现从键到值的快速访问,Redis 使用了一个哈希表来保存所有键值对。一个哈希表,其实是一个数组,数组的每个元素称为一个哈希桶。哈希桶中的 entry 元素中保存了 *key 和 *value 指针哈希表存在哈希冲突问题和 rehash 可能带来的操作阻塞Redis 解决哈希冲突的方式,就是链式哈希。就是指同一个哈希桶中的多个元素用一个链表来保存,它们之间依次用指针连接(叫做哈希冲突链)。Redis 的 rehash哈希冲突链上的元素只能通过指针逐一查找再操

2020-12-10 16:59:16 826

原创 简单记录 Spring Bean 生命周期

注册 BeanDefinitionDefaultListableBeanFactory#registerBeanDefinition()合并 BeanDefinitionAbstractBeanFactory#getMergedBeanDefinition():GenericBeanDefinition -> RootBeanDefinition、合并 PropertyVlauesSpring Bean 实例化前阶段AbstractAutowireCapableBeanFactory#res

2020-11-16 00:06:44 156

原创 MySQL 事务隔离级别

MySQL 事务隔离级别事务的 ACID 特性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)事务的隔离级别读未提交:一个事务还没提交时,它做的变更就能被别的事务看到。读提交:一个事务提交之后,他做的变更才会被别的事务看到可重复读(MySQL 默认隔离级别):一个事务在执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读级别下,未提交变更对其他事务也是不可见的。串行化:顾

2020-09-06 11:26:34 121

原创 MySQL 日志模块

MySQL 日志模块redo log物理日志,属于 InnoDB 引擎写日志模式:WAL(Write-Ahead Logging),先写日志,再写磁盘当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写在 redo log里面,并更新内存,这个时候更新算完成了,同时,InnoDB 引擎会在适当的时候将这个操作记录更新到磁盘里面,这个操作往往是在系统比较空闲的时候做的。InnoDB 的 redo log 是固定大小的,比如可以配置一组 4 个文件,每个文件的大小是 1GB ,那么 redo

2020-09-06 11:24:32 102

原创 MySQL 基础架构

MySQL 基础架构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分Server 层:连接器、查询缓存、分析器、优化器、执行器所有的内置函数(如时间、日期、数学和加密函数等)所有跨存储引擎的操作,比如存储过程,触发器、视图等存储引擎:负责数据的存储和提取,其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。从 MySQL 5.5.5 起成为 MySQL 的默认存储引擎连接器连接器负责和客户端建立连接、获取权限、

2020-09-06 11:21:37 203

原创 Bean Validation - 自定义注解实现枚举类型校验

Spring MVC 枚举入参校验枚举入参校验注解@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})@Retention(RUNTIME)@Documented@Constraint(validatedBy = {EnumValidator.class})public @interface EnumValid { String message() default "枚举值不在范围内";

2020-08-30 20:06:08 533

原创 面向对象四大特性

面向对象四大特性:封装、抽象、继承、多态封装:封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易...

2020-04-25 18:21:35 1791

原创 Spring Web MVC REST 处理流程

Spring MVC REST 处理流程一、什么是Spring Web MVC官网介绍:Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal n...

2020-01-05 22:38:01 328

原创 使用 MyBatis-Plus 实现 PO 对象枚举类型与 JdbcType 互相转换

1. 相关版本说明Spring Boot 版本:2.2.2.RELEASEMyBatis-Plus 版本:3.3.02. 模型准备2.1 User BO@Data@TableName("t_user")public class User { /** * ID */ @TableId(value = "id", type = IdType...

2019-12-21 16:20:25 3758 1

原创 CentOS7 安装 nginx

CentOS7 安装 nginx1. nginx 下载方式一 在主机下载nginx上传到服务器或虚拟机 nginx官方下载地址。方式二 centos 下使用 wget下载(这里下载1.14.1版本)wget https://nginx.org/download/nginx-1.14.1.tar.gz 2. 环境准备安装 gcc 和 gcc-c++ 开发库yum -y insta...

2018-11-30 16:47:51 148

原创 CentOS7 安装 JDK1.8

CentOS7 安装 JDK1.81. 安装前准备1.1 使用 java -version 检查本机是否安装有openJDK,有的话,先卸载的原来的jdk。使用rpm -qa | grep java 列出java安装依赖 使用rpm -e xxx 或 rpm -e --nodeps xxx 卸载rpm包1.2 下载 jdk-8u191-linux-x64.tar.gz 压缩包,上传...

2018-11-29 22:27:29 152

原创 SpringMVC 无法访问到指定jsp页面可能的原因

在SpringMVC的controller中对url进行分类的时候,在controller类前面配置@RequestMapping()无法正确访问到jsp页面,可以看见是路径错误,即多层路径的@RequestMapping无法找到指定jsp文件,很明显是路径配置问题,查看springmvc配置文件后发现配置视图解析器前缀是使用相对路径,所以去的也是相对路径即ContextPath/stud...

2017-01-19 20:31:49 6026 2

小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

2021-04-13

空空如也

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

TA关注的人

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