- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 手写简易Spring(九)
** 获取对象 *//** 获取对象类型 */Class<?/** 判断单例 */注意,具体方法的实现交给用户,用户觉得哪个类比较复杂,需要使用FactoryBean包装,就去实现这个接口,实现这3个方法。// 继承自DefaultSingletonBeanRegistry类, 用于实现单例// 更新后: 继承自FactoryBeanRegistrySupport, 兼容FactoryBean// 实现BeanFactory接口, 用于实现getBean方法。
2025-12-19 14:02:20
704
原创 手写简易Spring(八)
本期的目标是实现Aware功能,Aware是一个顶层接口,其拥有众多子类,如BeanClassLoaderAware、BeanNameAware、BeanFactoryAware、ApplicationContextAware接口,实现不同的Aware接口可以使Bean获得不一样的能力。举个例子,假设我们的Bean实现了BeanFactoryAware接口,那意味着我们的Bean拥有获取Spring中的BeanFactory类对象的权力。因此,
2025-12-18 09:38:12
679
原创 手写简易Spring(七)
接着上一期的内容,我们已经完成了Bean生命周期的大部分工作:BeanDefinition---BeanFactoryPostProcessor---实例化---属性注入---BeanPostProcessor前置处理---BeanPostProcessor后置处理.本期还需要完成一些部分,比如Bean的初始化方法、Bean的销毁方法。具体操作:1. 创建接口InitializingBean提供初始化方法afterPropertiesSet(),需要实现该接口重写该方法。
2025-12-18 09:02:13
981
原创 手写简易Spring(五)
*** 解析资源部分的抽象类* 实现顶层接口中的 getRegistry 和 getResourceLoader 方法*/@Override@Override跟着教程一步步实现后,发现其实不是很难。建议大家在草稿纸上梳理一下具体的关系,就会清晰很多。这几期的笔记做下来,我感觉Spring一直在践行这一理念:接口管定义,抽象类处理非接口功能外的逻辑,最终实现类即可只关心具体的业务实现。
2025-11-30 23:34:14
671
原创 手写简易Spring(四)
/ 这个类专注于创建bean对象@Overridetry {// 改进,实现无参或者有参的构造,单独封装一个创建实例的方法// 给 Bean 填充属性/*** 为Bean填充属性*/try {// 获取属性池包装类// 遍历属性池中的每一个元素// 属性名// 属性值// 遇到的是 BeanReference,那么就需要递归获取 Bean 实例,调用 getBean 方法// 目前还是在test中手动创建的BeanReference对象。
2025-11-29 22:52:09
389
1
原创 手写简易Spring(三)
/ 继承自DefaultSingletonBeanRegistry类, 用于实现单例// 实现BeanFactory接口, 用于实现getBean方法// 采用模板模式, 每一个类仅关注自己的实现/*** 无参构造的getBean* @return*/@Override/*** 有参构造的getBean* @return*/@Override/*** 由于有两个重载的getBean方法,因此将共同部分抽出来形成一个方法。
2025-11-29 00:18:55
620
原创 手写简易Spring(二)
上一期,我们实现了一个简单的BeanDefinition类与BeanFactory类。但是,上一期中的BeanDefinition包装的是Object,也就是我们需要自己手动地创建好对象,再交给BeanDefinition包装。这显然的思想。因此,需要先将BeanDefinition包装的对象改为Class对象。这样的话,框架就可以使用自行创建出所需要的对象。同时,我们还需要保证Bean是单例的,因此还需要维护一个HashMap,Key是BeanName,Value是对应的单例对象。
2025-11-27 22:28:26
417
原创 手写简易Spring(一)
这里是一个非常简单的实现,就是对bean进行了一个包装。本期实现了一个简易的Bean容器。重点在于理清BeanDefinition和BeanFactory的关系。
2025-11-26 22:09:05
283
原创 神经网络与深度学习(四)
YOLO网络采用了端到端的检测方式,将目标检测问题转化为回归问题,一次前向传播即可完成目标位置和类别的预测。YOLO v1的网络结构包含24个卷积层和2个全连接层,其中前20个卷积层用于预训练,后面4个卷积层和2个全连接层是随机初始化的。YOLO算法通过将目标检测问题转化为回归问题,实现了端到端的实时目标检测。网格划分策略,每个网格负责预测落在其中的目标每个网格预测多个边界框和类别概率精心设计的损失函数,平衡定位精度和分类准确率非极大值抑制后处理,消除冗余检测结果。
2025-05-27 10:07:19
714
原创 神经网络与深度学习总结(三)
深度学习在计算机视觉领域取得了巨大成功,催生了众多影响深远的应用。这些应用旨在让计算机能够像人类一样“看懂”图像和视频,并从中提取有用的信息。
2025-05-17 21:18:11
1232
原创 神经网络与深度学习总结(二)
目前主流的深度学习平台有很多,各有其特点和适用场景。: 支持多种语言和系统,生态完善,工业界应用广泛。: 在计算机视觉领域有较好的积累,速度快。: 以其动态图机制和易用性受到学术界的青睐,社区活跃。: 支持多种语言,分布式训练性能优秀。PaddlePaddle (百度): 国内用户友好,提供丰富的预训练模型。选择合适的平台需要考虑学习材料的丰富程度、CNN/RNN建模能力、易用性、运行速度以及多GPU支持等因素。希望GPU加速的NumPy替代品。一个提供极大灵活性和速度的深度学习研究平台。
2025-05-12 09:53:28
1323
原创 神经网络与深度学习总结(一)
是一种经典的统计分析方法,用于确定变量间的定量关系。假设我们有一组房屋销售数据,包括房屋面积和销售价钱,我们可以通过线性回归拟合一条直线,预测新房屋的销售价钱。其核心是通过最小化代价函数(通常是二次型形式)来找到最佳拟合直线的参数。则是通过特征的线性组合来做出分类决策。例如,根据苹果的直径和外观评价来判断苹果是好是坏。这里的关键是构造一条分界直线,使得不同类别的数据点分布在直线的两侧。为了将分类结果转换为概率,我们引入了Sigmoid函数(参考《深度学习入门》,Sigmoid可视为),它将输出值。
2025-05-06 21:29:42
966
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅