spring
spring扫描-实例化-设置属性-扩展点
,Mr.刘
目标劝退师
展开
-
spring-spring循环依赖&三级缓存
其实三级缓存也好,二级或者一级缓存也好,都能解决循环依赖的问题,也能解决spring容器关于存放生成的实例bean的问题。想来大家面试的时候,都被问到过三级缓存以及循环依赖,那么三级缓存到底是什么,又解决了什么问题呢。但是,三级缓存逻辑更清晰,不管是开发spring的也好,读源码的也好,都不会有太多的混乱。: 存放早起的对象,也就是A、B循环依赖的时候,先生成的那个不完成的bean。那么,spring容器又是怎么去解决循环依赖的问题呢,看下图。有以下两个程序,可以明显看到是循环依赖的代码。原创 2023-05-31 18:12:33 · 91 阅读 · 0 评论 -
spring-容器初始化结束发布的事件
Spring Boot 提供了 ApplicationRunner 和 CommandLineRunner 用于完成启动后的初始化工作,我们只要实现继承这个接口并实现其中的 run 方法就可以了。事件,用户只需要写一个事件监听器,监听这个事件,就能实现在spring初始化结束之后做一些事情。等看到了springboot源码之后,再进行补充。spring在容器结束时,会发布一个。原创 2023-05-31 15:20:48 · 234 阅读 · 0 评论 -
spring-扫描类
spring扫描类的时候,其实是把@Component传入的包名,转化为带斜杠的路径,传入进入,挨个扫描路径下边的文件夹和文件。由于jar包是在工作目录下的,而且jar包是有jvm加载的,所以spring不会去扫描jar包。这也是为什么需要用到jar包中的类时,就必须用@Bean去进行注入。原创 2023-05-30 20:17:36 · 76 阅读 · 0 评论