RedSparks
码龄8年
关注
提问 私信
  • 博客:6,068
    6,068
    总访问量
  • 21
    原创
  • 164,746
    排名
  • 56
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-07-26
博客简介:

RedSparks的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    189
    当月
    1
个人成就
  • 获得101次点赞
  • 内容获得1次评论
  • 获得41次收藏
创作历程
  • 21篇
    2024年
成就勋章
兴趣领域 设置
  • 数据结构与算法
    推荐算法
  • 人工智能
    opencvtensorflowscikit-learn
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

473人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

实现自定义conditional注解

在上述实现中,MyCondition1,MyCondition2实现了Condition接口的matches方法,并作为参数传递给@Conditional注解,当系统中引入了"com.alibaba.druid.pool.DruidDataSource"类后,MyCondition1的判断为true,AutoConfiguration1被加载,bean1被创建。存在这样一个需求,引入了xx类后,就创建A类型bean对象,否则创建B类型bean对象。针对这两个问题,我们做下改造。我们先来做一个简单的实现。
原创
发布博客 2024.09.01 ·
295 阅读 ·
6 点赞 ·
0 评论 ·
3 收藏

springFactories原理

本文以spring的配置读取类为例,说明spring boot如何通过spring.factories创建Bean对象。
原创
发布博客 2024.08.18 ·
700 阅读 ·
25 点赞 ·
1 评论 ·
10 收藏

springBoot启动模拟实现

当前应用中包含spring-boot-starter-web依赖,该依赖存在DispatcherHandler和Servlet,最终被SpringBoot推断为web应用。给SpringApplication添加初始化器,初始化器添加Bean对象到容器中。
原创
发布博客 2024.06.30 ·
230 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

java泛型

上述的arrayList是使用泛型的过程中非常常见的例子,arrayList指定了接收的元素类型为String,如果往arrayList添加其他类型元素,则会报编译异常。那么ArrayList则默认接收Object类型元素,这也是jdk1.5之前,java还没有泛型机制时,集合元素的存储类型。T可以写为任意标识,常用T、E、K、V等型式的参数来标识泛型。如果在new ArrayList的时候,没有指定元素类型。泛型定义格式:修饰符 class 类名{}
原创
发布博客 2024.06.23 ·
233 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

spring参数解析器

(3)@ModelAttribute 通过key=value的方式将请求参数值赋值给方法,并且可以使用1或多个key=value映射 来构造 对象。(2)@RequestParam 通过key=value的方式将请求参数值赋值给方法。(1)@PathVariable 通过占位符获取特定位置的请求参数值并赋值给方法。本文介绍常见参数处理器的使用场景。
原创
发布博客 2024.06.23 ·
273 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

模拟实现AOP调用链

1. proceed() 方法调用链中下一个环绕通知。访问根节点 = 执行proced方法。访问右节点 = 执行 after方法。2. 每个环绕通知内部继续调用 proceed()先访问左节点 = 先执行Before方法。3. 调用到没有更多通知了, 就调用目标方法。
原创
发布博客 2024.06.21 ·
241 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

Aop代理创建时机

在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a6d89eb39f114128b5647ff561d52b9a.png。在Bean实例创建后,依赖注入前,创建代理。也可以说是在init方法前创建代理。2. 实例创建后, 依赖注入前 (有循环依赖时), 并暂存于二级缓存。b. 依赖注入与初始化不应该被增强, 仍应被施加于原始对象。Bean1的init方法执行后,代理对象被创建。Bean2使用的是代理后的Bean1。Bean1和Bean2存在循环依赖。
原创
发布博客 2024.06.20 ·
380 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

spring切面

(2)创建advice。(3)创建aspect。
原创
发布博客 2024.06.18 ·
208 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

jdk代理模拟

方法2可以对foo方法做各种类型的增强,但是当Foo类不止一个方法需要增强,并且动态的选择调用哪一个方法时,方法2就无法解决了。当做参数传到InvocationHandler的invoke方法内,也就是被增强方法被当做参数传到了增强方法内。本文模拟实现了jdk代理,从固定逻辑到策略模式,从代理单个方法到代理多个方法,循序渐进。实现不同的InvocationHandler接口即可调用不同的方法。调用proxy.foo方法时,将Foo接口的foo方法。将被增强的方法作为参数从而实现代理不同的方法。
原创
发布博客 2024.06.16 ·
486 阅读 ·
12 点赞 ·
0 评论 ·
4 收藏

AOP-cglib动态代理

【代码】AOP-cglib动态代理。
原创
发布博客 2024.06.16 ·
172 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

AOP-jdk实现

【代码】AOP-jdk实现。
原创
发布博客 2024.06.16 ·
231 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Spring Ajc增强

因为MyAspect并没有添加@Component注解,所以MyAspect并没有被Srpring管理。上述代码实际上是使用aspectJ来实现增强。发现foo内部加入了切面方法,实现了增强。
原创
发布博客 2024.06.15 ·
355 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

spring bean初始化方法

【代码】spring bean初始化方法。
原创
发布博客 2024.06.14 ·
85 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

自定义实现ComponentScan后处理器

【代码】自定义实现ComponentScan后处理器。
原创
发布博客 2024.06.13 ·
223 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

bean线程安全问题

在单例Bean中,如果在类中声明成员变量,并且有读写操作(有状态的),就会出现线程不安全问题。总结:有状态的单例bean线程不安全,无状态的单例Bean线程安全。把成员变量声明在方法中,那么单例Bean就是线程安全的了。由此可知,bean并不是线程安全的。bean线程安全嘛?
原创
发布博客 2024.06.13 ·
209 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Autowired运行分析

(2)bean工厂对DependencyDescriptor进行解析即可以获取到属性,方法和方法参数的值。autowired在注入时会使用InjectedMetaData来获取属性和方法的值,并进行注入。(1)DependencyDescriptor记录了属性,方法,方法参数的描述信息。(1)和(2)都是metadata.inject()方法内部执行的步骤的简化。dd3描述了setHome方法的第一个参数,对dd3进行解析,获取该参数的值。
原创
发布博客 2024.06.05 ·
195 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

SpringBean生命周期

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
原创
发布博客 2024.06.04 ·
255 阅读 ·
10 点赞 ·
0 评论 ·
1 收藏

Bean生命周期加载模板方法

在一个方法中有固定的流程,固定的部分方法,会变的部分方法。可以将会变的方法设计为抽象方法,在使用过程中,添加不同的实现类来即可实现不同的功能。
原创
发布博客 2024.04.21 ·
134 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

BeanFactory后处理器

Autowired无法确定inter使用的是哪一个实现类。将inter对象的名字改为bean3,就可以创建bean3对象了。因为当@Autowired发现注解的对象有多个实现类时,会寻找是否有类名和注解的对象名一样。使用@Resource注解按名字获取bean对象同时添加@Autowired和@Resources注解后,按照后处理器的添加顺序决定使用哪个注解的匹配规则来寻找Bean对象。由于Autowired处理器在前,所以先使用Autowired注解来获取bean对象。
原创
发布博客 2024.04.20 ·
300 阅读 ·
5 点赞 ·
0 评论 ·
1 收藏

BeanFactoty实现

beanFactory不会做的事情(1)不会主动调用BeanFactory后处理器(2)不会主动添加Bean后处理器(3)不会 主动初始化单例(4)不会解析BeanFactory,不会解析${}与#{}而ApplicationContext将以上4件事都做好了。
原创
发布博客 2024.04.20 ·
437 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏
加载更多