自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Spring Bean 生命周期全流程

本文详细解析了Spring Bean的生命周期执行顺序,通过一个完整的SpringBoot示例项目演示了从创建到销毁的完整流程。主要内容包括: Bean生命周期的11个关键阶段:构造函数→属性注入→Aware接口→BeanPostProcessor.before→@PostConstruct→InitializingBean→initMethod→BeanPostProcessor.after→使用→@PreDestroy→DisposableBean→destroyMethod 初始化阶段的执行顺序:@P

2026-03-28 11:26:27 373

原创 Spring 中 ResourceUtils 的用法详解

Spring的ResourceUtils工具类用于解析不同格式的资源路径(classpath、本地文件、URL等)为File/URL/URI对象。它支持classpath、本地文件和网络资源,但存在重要限制:无法处理JAR包内的classpath资源。更推荐使用Spring的ClassPathResource或ResourceLoader等资源抽象接口,这些方案更通用且符合Spring设计理念。ResourceUtils适合处理本地文件路径,而ClassPathResource更适合处理Spring资源,特

2026-03-24 08:00:00 384

原创 Spring 中 @PropertySource 注解详解(附完整示例)

本文详细介绍了Spring框架中@PropertySource注解的使用方法。该注解用于加载自定义properties配置文件到Spring环境中,支持classpath和classpath*两种路径写法,可通过@Value注解读取配置值。文章通过完整示例展示了如何在Spring Boot项目中加载非默认配置文件(如myconfig.properties),并说明了配置优先级规则。特别指出@PropertySource仅支持.properties文件,常用于补充Spring Boot自动加载机制。

2026-03-23 08:00:00 332

原创 Spring 中 @Value 的用法详解(含完整示例项目)

本文详细介绍了Spring框架中@Value注解的使用方法,包括基础配置注入和SpEL表达式的高级应用。通过示例项目演示了@Value的三大核心功能:直接赋值、配置文件读取和SpEL表达式计算,并列举了10种常见SpEL用法场景。文章还对比了@Value与@Autowired的区别,指出了Map.of的使用限制,并给出了适用场景建议。最后提供了项目源码地址和延伸学习资源,帮助开发者全面掌握@Value注解在Spring项目中的实际应用。

2026-03-22 08:00:00 623

原创 深入理解 Spring Aware 接口:原理、用法与最佳实践

本文系统讲解了Spring框架中的Aware接口机制,阐述了其核心原理与正确使用方式。Aware接口允许Bean在初始化阶段感知Spring容器基础设施,如ApplicationContext、BeanFactory等。文章从源码角度分析其实现机制,通过示例演示典型用法,并指出常见使用场景(框架开发、环境配置等)。特别强调Aware与@Autowired的区别:前者用于容器感知,后者用于业务依赖注入。最后提出最佳实践建议,包括优先使用构造器注入、限制Aware使用范围等,帮助开发者避免常见误区。完整示例代码

2026-03-21 08:00:00 281

原创 Spring Boot 中的三种依赖注入方式详解(附完整示例)

在 Spring Framework 中,依赖注入指的是:由 Spring 容器负责创建对象,并将其依赖自动注入,而不是在代码中手动 new。@Autowired在实际开发中建议优先使用构造器注入原因:保证依赖完整性更符合面向对象设计更容易进行单元测试Setter 注入用于可选依赖,避免字段注入。通过本示例我们可以得出:Spring 会自动解析构造函数和 setter 方法参数当存在多个实现类时,需要使用@Qualifier指定 Bean构造器注入是最推荐的方式。

2026-03-20 08:00:00 321

原创 Spring中@Resource与@Autowired的区别(结合示例详解)

本文对比分析了Spring框架中@Autowired和@Resource两个依赖注入注解的核心区别。通过UserService接口的多实现示例,验证了@Autowired默认按类型注入(需配合@Qualifier解决冲突),而@Resource默认按名称匹配的特性。关键差异包括:@Autowired支持构造器注入和required属性,源于Spring框架;@Resource作为Java标准注解,主要支持字段和setter注入。最佳实践推荐使用构造器注入+@Autowired组合。

2026-03-19 08:00:00 369

原创 深入理解 Spring 中的 @Primary 与 @Qualifier

Spring项目中处理多实现类注入时,@Primary和@Qualifier是关键注解。@Primary标记默认Bean,当存在多个同类型Bean时优先选择;@Qualifier则显式指定具体Bean名称。优先级顺序为@Qualifier > @Primary > 字段名匹配。最佳实践是使用@Primary指定默认实现,@Qualifier选择特殊实现,避免依赖字段名匹配。这两种机制能有效解决NoUniqueBeanDefinitionException问题,提升代码可维护性。包含示例项目。

2026-03-17 11:23:22 388

原创 OpenCV常用图片处理函数

本文介绍OpenCV中常用的图形处理函数。要在Python中使用OpenCV,需要先安装依赖,使用来安装OpenCV。

2025-10-23 09:49:03 462

原创 Transformer的层归一化结构(含PyTorch代码实现)

摘要:本文探讨了BatchNorm在Transformer中面临的问题,介绍了替代方案层归一化的原理及实现。由于Transformer处理变长序列时BatchNorm计算不稳定,层归一化通过单个token的均值和方差计算解决了这一问题。其数学公式包含归一化处理和可学习的线性变换参数。PyTorch实现展示了如何通过均值、标准差计算及可训练参数γ和β来完成层归一化操作。层归一化不仅解决了BatchNorm的局限性,还因其不区分训练/推理状态而更具实用性。

2025-10-19 10:57:57 889

原创 Batch Norm批量归一化(含Pytorch代码实现)

Batch Norm是一种针对批量数据进行归一化的方法,在训练阶段,计算并维护数据的标准差和均值,并对其进行归一化(减去均值,除以标准差);在深度学习中,归一化操作的目的是为了让每一层的计算结果保持在合适的范围内,避免某个层计算出的值太大导致对应的梯度太大而造成训练中的不稳定。从数学上来说,在每一层计算中,每一层看作一串数据,则数据的分布会在计算之中发生变化,而归一化的目的是保持分布的一致,使其分布稳定。均值,方差的计算都是在Channel上进行的,也就是说,γ,β是可学习的参数,是。

2025-10-17 10:18:12 1168

原创 Transformer的注意力和多头注意力结构(含Pytorch代码实现)

本文讲解了Transformer的注意力机制及其计算过程,并用PyTorch实现。

2025-10-14 15:44:51 2035

原创 Node.js环境和浏览器环境的区别

分清了JavaScript的两大用途Node.js和浏览器的区别,并且用两个例子来介绍二者混合使用的情况。

2025-10-13 15:13:22 389

原创 Node.js中的内建变量

讲解了Node.js中的内建变量,包括全局对象,模块级对象,ECMAScript对象和特殊内置常量或符号

2025-10-13 14:59:22 536

原创 npm环境的初始化和基本结构

该文章详细讲解了package.json,package-lock.json,.gitignore的知识。

2025-10-11 12:25:22 369

空空如也

空空如也

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

TA关注的人

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