自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(211)
  • 资源 (10)
  • 收藏
  • 关注

原创 设计模式大图

2020-10-11 14:18:00 268 1

原创 C语言中ASCII码与整型互相转换的那些事儿

在C语言中,字符和整数之间的转换是通过ASCII码表实现的。字符在内存中以整数形式存储,占用1个字节,而整型通常占用4个字节。通过理解ASCII码表和字符的内存存储方式,我们可以更好地处理字符和整数之间的转换,避免潜在的错误。希望这篇文章能够帮助你更好地理解C语言中ASCII码与整型之间的互相转换。如果你有任何问题或疑问,欢迎在评论区留言,我们一起探讨!

2025-02-17 21:23:41 811

原创 Spring中DispatcherServlet、WebApplicationContext和ServletContext的关系

理解DispatcherServlet、WebApplicationContext和ServletContext之间的关系对于深入理解Spring Web应用的工作原理至关重要。这种设计不仅提供了清晰的职责分离,还为开发灵活、可扩展的Web应用提供了坚实的基础。在Spring Web应用程序中,DispatcherServlet、WebApplicationContext和ServletContext是三个核心概念,它们之间的关系和交互对于理解Spring的工作原理至关重要。

2024-08-05 15:27:20 813

原创 深入理解Spring依赖注入与生命周期管理

控制反转(Inversion of Control,IoC)是一种设计原则,它将对象的创建、配置和生命周期管理的控制权从程序代码转移到外部容器。在传统的程序设计中,程序的流程由程序员直接控制。而在IoC模式下,程序员不再显式地创建对象,而是描述如何创建对象,由IoC容器来完成对象的创建和管理。如果bean实现了InitializingBean接口,Spring将调用其afterPropertiesSet()方法。

2024-07-25 14:53:22 818 1

原创 Spring踩坑:抽象类作为父类,使用子类@Autowired属性进行填充,属性值为null

本文将深入探讨在Spring Boot 2.0及以上版本中使用抽象类作为父类时的最佳实践,特别关注依赖注入的正确使用方式。在Spring Boot 2.0及以上版本中,我们可以直接在抽象类的属性上使用@Autowired注解进行依赖注入。这意味着在构造器执行时,@Autowired注解的属性还没有被注入,它们的值为null。这个问题在子类中更加复杂。当你创建一个抽象类的子类时,子类的构造器会首先调用父类的构造器。这意味着即使是在子类的构造器中,父类中@Autowired注解的属性仍然是null。

2024-07-25 07:11:09 3652 1

原创 Window批处理(bat)命令

路径扩展变量(使用 %~dp0 等): | || 特殊参数变量: | |命令会将当前工作目录切换到批处理文件所在的目录。注意:这些路径扩展也可以应用于参数,如 %~dp1 表示第一个参数的驱动器和路径。好的,我将这些命令也加入到表格中,并提供详细的说明。会进入批处理文件所在目录的 bin 子目录。表示当前批处理文件所在的驱动器和路径。

2024-07-11 17:23:53 689

原创 Windows CMD 命令汇总表

FTP(文件传输协议)用于在运行 FTP 服务器的计算机之间传输文件。好的,我会继续补全这份 Windows CMD 命令指南。功能:管理网络资源、用户、共享等。功能:以树形结构显示目录。VOL [驱动器:]SYS [驱动器:]功能:创建新的子目录。功能:显示目录的内容。VOL [驱动器:]SYS [驱动器:]

2024-07-11 16:39:23 1162

原创 Nginx配置文件全解:从入门到设计

Nginx的配置文件是一个强大而灵活的工具,掌握它可以让你构建高性能、安全和可扩展的Web应用架构。本指南涵盖了从基础到高级的多个方面,但Nginx的功能远不止于此。持续学习和实践是成为Nginx配置专家的关键。希望这个全面的指南能帮助你更好地理解和使用Nginx配置文件。如果你有任何问题或需要进一步的说明,请随时询问!

2024-07-06 23:39:25 1361

原创 一文全解Nginx

Nginx(发音为"engine-x")是一个高性能的开源 Web 服务器软件,同时也可以用作反向代理、负载均衡器和 HTTP 缓存。它最初由俄罗斯的 Igor Sysoev 开发,并于 2004 年首次公开发布。

2024-07-06 23:38:35 1902 5

原创 一文全解:OGNL表达式以及Mybatis中的OGNL表达式

OGNL(Object-Graph Navigation Language)是一种用于在Java中访问和操作对象图的表达式语言。它提供了一种简洁、灵活的方式来遍历和操作复杂的对象结构,而无需编写大量的代码。OGNL表达式可以用于各种场景,如Web应用、批处理任务、测试等。OGNL表达式是一种强大的工具,尤其在Mybatis中能够极大地简化动态SQL的编写。它的简洁语法和强大功能,使得开发者能够高效地处理复杂的对象操作。然而,在使用OGNL表达式时,也要注意性能和安全性的问题,合理使用表达式,避免潜在的风险。

2024-06-12 15:13:23 7224

原创 spring-boot-starter-validation校验框架

# 介绍Spring Boot Starter Validation是一个Spring Boot模块,用于简化应用程序中的验证功能。它包含以下依赖:* Hibernate Validator:Hibernate Validator是JavaBean Validation(JSR 380)规范的参考实现,提供了一组用于验证Java对象的约束和注解。* javax.validation API:javax.validation API是JavaBean Validation的API,定义了可用于验证的

2024-05-08 11:24:50 1224 1

原创 Mybatis-plus对单表操作的封装

如果需要自定义SQL语句,可以使用BaseMapper提供的selectListselectByIdinsertupdateByIddeleteById等方法的重载版本,传入Wrapper对象和RowBounds对象进行自定义查询和分页。// 自定义SQL查询// 自定义SQL插入// 自定义SQL更新。

2024-04-29 10:16:24 586

原创 业务流程组件之Activity的说明与使用

Activity流程引擎是一种用于管理和执行业务流程的软件。它可以帮助企业自动化业务流程,提高工作效率和降低人为错误。

2024-04-16 10:14:47 1158

原创 Spring事务核心接口:PlatformTransactionManager

PlatformTransactionManager是Spring框架中事务管理的核心接口,它负责管理事务的创建、提交和回滚等操作。在Spring中,事务管理是通过PlatformTransactionManager和TransactionManager接口来实现的。PlatformTransactionManager是一个更高级的接口,它封装了TransactionManager接口,提供了更丰富的事务管理功能。

2024-03-25 22:28:27 4339

原创 Spring事务核心:声明式事务&注解式事务

在Spring中,事务管理是一个非常重要的特性,它可以帮助开发者在应用程序中实现事务控制。Spring提供了两种事务管理方式:声明式事务和注解事务。

2024-03-25 22:27:57 1277

原创 Spring核心接口:HandlerMethodArgumentResolver参数解析器

在Spring中,参数解析器是一个接口,它负责将HTTP请求中的参数解析为控制器方法的参数。Spring提供了许多内置的参数解析器,用于处理不同类型的请求参数,例如查询参数、路径变量、请求头、请求体等。开发人员还可以自定义参数解析器,以处理特定的请求参数。除了Spring提供的内置参数解析器外,开发人员还可以自定义参数解析器,以处理特定的请求参数。自定义参数解析器需要实现HandlerMethodArgumentResolver接口,并在配置类中将其添加到WebMvcConfigurer中。

2024-03-25 22:26:02 1910

原创 Spring核心方法:Refresh全解(WebMVC如何装配、关联)

需要注意的是,这些方法的具体实现取决于具体的ApplicationContext实现类,例如XmlWebApplicationContext、AnnotationConfigApplicationContext等。因此,在具体使用时需要结合具体的实现类来学习和理解这些方法。

2024-03-16 19:12:22 1235

原创 Spring容器(ApplicationContext)刷新过程

Spring Boot是一个用于快速构建基于Spring框架的应用程序的平台。Spring Boot提供了许多有用的特性,其中一个特性是StartUpStep接口。StartUpStep接口用于在应用程序启动时执行一些自定义操作。在本文中,我们将介绍StartUpStep接口,以及如何在Spring Boot应用程序中使用它来执行自定义的启动任务。StartUpStep是Spring Boot中的一个接口,它在Spring Boot 2.2中被引入。

2024-03-16 19:11:16 1221

原创 Vue中nextTick一文详解

nextTick在这篇文章中,我们详细介绍了 Vue 中的nextTick。我们介绍了nextTick的基本概念、使用方法、原理以及应用场景。需要注意的是,nextTick是一个非常重要的 API,它可以帮助我们在更新 DOM 后获取更新后的 DOM 状态,执行依赖于 DOM 的操作和第三方库。因此,在实际应用中,我们需要根据具体情况灵活运用nextTick。以下是一个表格,列出了本文中介绍的nextTick知识点示例代码nextTick的基本概念nextTick的使用方法nextTick的原理。

2024-03-16 19:06:02 7370

原创 Vue中Diff算法一文详解

Diff 算法是一种比较两个对象之间差异的算法。在 Vue 中,Diff 算法用于比较虚拟 DOM 中两棵树的差异,从而最小化对真实 DOM 的操作。当组件的数据发生变化时,Vue 会根据新数据生成一棵新的虚拟 DOM 树,然后使用 Diff 算法比较新旧两棵树的差异,找出需要更新的节点,最终将变化的部分更新到真实 DOM 中。在这篇文章中,我们详细介绍了 Vue 中的 Diff 算法。我们介绍了 Diff 算法的基本概念,以及 Vue 中 Diff 算法的实现方式。

2024-03-16 19:05:03 1251

原创 Vue中的Vnode虚拟Dom一文详解

在这篇文章中,我们介绍了 Vue 中的 VNode 以及其各个知识点。我们介绍了 VNode 的结构、创建、渲染和 diff 算法,并提供了详细的示例代码。我们还介绍了 Vue 中的一些优化策略,用于提高虚拟 DOM 的性能。VNode 比操作真实 DOM 节点要快得多,因为它只需要更新变化的部分,而不需要重新渲染整个组件。VNode 可以在服务器端渲染中使用,以提高页面加载速度。VNode 的 diff 算法可以快速地比较两棵树的差异,以最小化 DOM 操作次数。

2024-03-16 19:04:19 3706

原创 Spring核心接口:ObjectProvider接口

它可以用于在需要延迟获取 bean 或在需要对 bean 进行多次访问时,减少 bean 的创建次数和提高应用程序性能。ObjectProvider 和隐式注入可以结合使用,以实现对 bean 的延迟访问和自动注入。例如,可以在一个 bean 中注入 ObjectProvider,然后在需要使用 AnotherBean 时,调用 ObjectProvider 的。在使用隐式注入时,Spring 会自动寻找与要注入的 bean 类型匹配的 bean,并将其注入到需要使用的地方。

2024-03-13 22:42:09 969

原创 Spring核心接口:BeanFactory接口

编号接口/实现类名称描述1BeanFactory (接口)Spring IoC 容器的基础接口,提供了最基本的依赖注入功能2ListableBeanFactory (接口)BeanFactory 的子接口,提供了查找 Bean 定义和 Bean 实例的功能3HierarchicalBeanFactory (接口)BeanFactory 的子接口,提供了层次化 Bean 工厂的功能4ConfigurableBeanFactory (接口)

2024-03-13 22:41:30 1070

原创 Spring神器:SpEl表达式

Spring Expression Language (SpEL) 是Spring框架提供的一种强大的表达式语言,它允许开发人员在运行时动态地计算表达式,并访问和操作对象图。SpEL是一种基于表达式的语言,它支持各种操作符、函数和变量,可以用来执行各种复杂的计算和数据操作。SpEL的语法类似于Java表达式语言,但它更加强大和灵活。SpEL表达式可以用在Spring配置文件中,也可以用在代码中。在Spring配置文件中,SpEL表达式可以用来设置Bean的属性值,或者用来执行一些条件判断和循环操作。

2024-03-13 22:39:38 756

原创 Spring核心接口:InstanceStrategy接口

CGLIB实例化策略是Spring中用来控制CGLIB创建代理对象的策略。在Spring中,CGLIB通过一个名为Enhancer的类来创建代理对象。Enhancer会为被代理类创建子类,并在子类中插入一些拦截器逻辑。CGLIB创建代理对象的过程是通过一个名为的接口来控制的。和。

2024-03-13 22:39:01 427

原创 Spring具体拓展点:后置处理器

除了使用Spring提供的内置后置处理器,我们还可以通过实现或接口来创建自定义后置处理器。@Component@Override// 在这里编写自定义逻辑,例如修改bean的定义或注册新的bean@Component@Override// 在这里编写自定义逻辑,例如在bean初始化之前进行验证或修改属性@Override// 在这里编写自定义逻辑,例如在bean初始化之后执行额外的设置或处理。

2024-03-13 22:38:04 1121

原创 深入理解Spring的ApplicationContext:案例详解与应用

如果说是Spring的心脏,那么就是完整的身躯了。由派生而来,提供了更多面向实际应用的功能,是“应用的容器”。通过本文的学习,您应该对有了更深入的理解。它不仅是Spring框架的核心组件,也是您在构建企业级应用程序时的得力助手。希望本文能够帮助您在实际开发中更好地利用,构建出更加健壮和可维护的应用程序。

2024-03-13 22:27:03 802

原创 Spring神器:时间多播器ApplicationEventMulticaster

Spring的时间多播器(ApplicationEventMulticaster)是Spring事件机制的核心组件之一。它负责将Spring应用程序中发布的事件分发给感兴趣的监听器。在Spring中,事件机制是一种发布-订阅模式的实现。事件发布者将事件发布到ApplicationEventMulticaster中,然后ApplicationEventMulticaster将事件分发给所有注册的事件监听器。这种机制使得Spring应用程序中的组件可以更好地解耦,并且可以更灵活地响应事件。

2024-03-12 21:24:17 1496

原创 Spring神器:Environment环境配置

在Spring框架中,Environment是一个很重要的组件,它提供了对当前应用程序运行环境的抽象。Environment是Spring中的一个接口,它代表了应用程序运行时的环境,包括应用程序的配置信息、系统属性、环境变量、JVM属性等。Environment接口提供了许多方法,用于获取不同类型的属性值。

2024-03-12 21:23:45 1495

原创 Spring神器:SpEl表达式

Spring Expression Language (SpEL) 是Spring框架提供的一种强大的表达式语言,它允许开发人员在运行时动态地计算表达式,并访问和操作对象图。SpEL是一种基于表达式的语言,它支持各种操作符、函数和变量,可以用来执行各种复杂的计算和数据操作。SpEL的语法类似于Java表达式语言,但它更加强大和灵活。SpEL表达式可以用在Spring配置文件中,也可以用在代码中。在Spring配置文件中,SpEL表达式可以用来设置Bean的属性值,或者用来执行一些条件判断和循环操作。

2024-03-12 21:23:04 1748

原创 Vue3 中的代理原理详解

### Vue3 中的代理原理详解Vue3 中引入了代理(Proxy)机制,取代了 Vue2 中的 Object.defineProperty() 机制,用于实现数据响应式。代理机制是 ES6 中新增的特性,它可以用来自定义对象中的操作,比如属性查找、赋值、枚举、函数调用等。在 Vue3 中,代理机制用于拦截对象中的属性访问和修改,从而实现数据的响应式。#### 什么是代理?代理(Proxy)是 ES6 中新增的一个特性,它可以用来自定义对象中的操作。代理是一个对象,它可以拦截并重定义基本操作,

2024-03-07 16:59:05 4539 1

原创 Fetch的使用

# Fetch的使用Fetch API 是一个用于发起 HTTP 请求的新式 API,它比传统的 XMLHttpRequest 更加强大和灵活。Fetch API 返回的是一个 Promise 对象,因此可以很方便地使用 async/await 来处理请求的响应。以下是 Fetch API 的基本用法:```javascriptfetch('https://api.example.com/data') .then(response => response.json()) .then(d

2024-03-07 16:58:00 1217

原创 Vue的Diff详解

在 Vue 中,当我们更新数据时,Vue 会自动更新视图,这个过程就是虚拟 DOM 的 diff 算法。虚拟 DOM 是一种以 JavaScript 对象的形式表示 DOM 节点的方式,它可以更快地计算出需要更新的节点,从而提高渲染效率。接下来,我们来详细介绍一下 Vue 中的 diff 算法。### 什么是 diff 算法?diff 算法是一种比较两个对象的差异的算法,在 Vue 中,它用来比较新旧虚拟 DOM 的差异,从而找出需要更新的节点。### Vue 中的 diff 算法是如何工作

2024-03-07 16:54:27 483

原创 Vue的属性和方法($符号说明)

# Vue的属性和方法在 Vue.js 中,$ 是一个特殊前缀,用于表示 Vue 实例或 Vue 组件上的内置属性和方法。这些属性和方法被称为“实例属性”或“实例方法”。以下是一些常见的实例属性和方法:* `$data`:Vue 实例的数据对象。* `$props`:Vue 组件的 props 对象。* `$el`:Vue 实例或组件的根 DOM 元素。* `$refs`:一个对象,包含所有具有 ref 属性的子组件和 DOM 元素。* `$options`:Vue 实例或组件的选项对象

2024-03-07 16:53:10 2691

原创 ES6新特性

ECMAScript 6 (ES6),也称为 ECMAScript 2015,是 JavaScript 语言的下一代标准,于 2015 年正式发布。使用 const 命令声明的变量必须在声明时赋值,一旦声明,就不能再改变它的值。ES6 新增了一些对象的方法,比如 Object.assign()、Object.is()、Object.keys()、Object.values() 等。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范。

2024-03-07 16:51:40 998

原创 Vue实例声明详解

在 Vue 3.x 中,使用 `createApp` 方法创建一个 Vue 实例,代码如下:```javascriptimport { createApp } from 'vue';const app = createApp({ // 选项});```在创建 Vue 实例时,可以传入一个选项对象,该对象可以包含以下属性:* `data`:一个返回数据对象的函数。* `methods`:一个包含方法的对象。* `computed`:一个包含计算属性的对象。* `watch`:一

2024-03-07 16:50:37 810

原创 v-mode详解以及具体的使用示例

在 Vue.js 中,组件是可重用的 Vue 实例,它们拥有自己的数据和方法,并可以接受来自父组件的 props 数据。在组件中使用 `v-model` 时,可以实现组件和父组件之间的双向数据绑定。组件中使用 `v-model` 的原理是:父组件将一个值传递给子组件的 props 属性,子组件通过 `$emit` 方法触发一个自定义事件,将新值传递回父组件。父组件接收到新值后,更新数据,从而实现双向绑定。在组件中使用 `v-model` 时,需要在组件中定义一个 `model` 选项,该选项用于指定

2024-03-07 16:49:21 1685

原创 数据结构与算法之Floyd算法-最短路径问题

# Floyd算法-最短路径问题# 算法结束Floyd算法:求出每一对顶点之间的最短路径**核心**:使用动态规划思想,将问题的求解分为多个阶段:对于n个顶点的图G,求任意一对顶点V_i->V_j之间的最短路径可分为如下几个阶段:* 初始:不允许在其他顶点中转,最短路径是?* 0:若允许在$V_0$中转,最短路径是?* 1:若允许在$V_0,V_1$中转,最短路径是?* 2:若允许在$V_0,V_1,V_2$中转,最短路径是?* ...* n-1:若允许在$V_0,V_1,V_

2023-09-17 19:50:41 306

原创 数据结构与算法之树、森林与二叉树的转换(手绘)

> 视频讲解:[【数据结构】树、二叉树、森林直接的转换_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1Sq4y1M7cs)# 树转换成二叉树## 原则:1. 给兄弟加线2. 给出除长子外的结点去线【第一个连接的节点就是长子】3. 层次调整,兄弟节点变成右子元素【书上说:以树根为轴心,顺时钟旋转 45 度】## 步骤展示### 连线![GIF 2022-9-17 8-56-25](assets/GIF 2022-9-17 8-56

2023-09-17 19:30:01 977

原创 邮箱转发工具类

以下是完整的Java代码,其中包含了两个静态方法,分别用于发送纯文本邮件和包含HTML内容的邮件。两个方法的参数列表基本相同,分别为:from:发送方邮箱地址,可以是一个字符串数组,用于支持多发件人。to:接收方邮箱地址,可以是一个字符串数组,用于支持多收件人。subject:邮件标题,字符串类型。content:邮件内容,字符串类型,可以是纯文本或HTML。host:SMTP服务器主机名,字符串类型,。port:SMTP服务器端口号,整型,一般为465或587。

2023-04-12 21:57:49 1062

quartz.properties

quartz.properties

2021-07-15

web.xml标签说明.docx

web.xml标签说明.docx

2021-06-03

Tomcat请求访问流程(逻辑).vsdx

Tomcat请求访问流程(逻辑).vsdx

2021-05-30

Tomcat启动流程.vsdx

Tomcat启动流程.vsdx

2021-05-30

Tomcat处理请求.vsdx

Tomcat处理请求.vsdx

2021-05-30

JSP编译过程.vsdx

JSP编译过程.vsdx

2021-05-30

Japser 编译流程.vsdx

Japser 编译流程

2021-05-30

crud-test.zip

MAVEN从零开始搭建一个SSM+Druid脚手架

2021-04-09

23种设计模式彩图说明.jpg

用于提醒自己关于设计模式的一些细节

2021-04-05

mybatis全局参数.docx

mybatis中内置的全局参数,用于学习mybatis框架,在不确定是否有该别名的时候可以查查这份文档

2020-05-13

空空如也

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

TA关注的人

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