已解决
springboot源码阅读需要提前了解的知识点
来自网友在路上 149849提问 提问时间:2023-11-02 01:59:28阅读次数: 49
最佳答案 问答题库498位专家为你答疑解惑
SpringBoot 源码透彻解析——必须提前了解的几个知识点(这些玩意充斥到springboot源码的各个角落)
- SpringFactoriesLoader.loadFactories(ApplicationContextFactory.class,getClass().getClassLoader() : 根据 spring.factories文件,获取实现类的实例;
- Binder.get(environment).bind(“spring.main”, Bindable.ofInstance(this)); 绑定配置文件属性到相关类实例;
- BeanDefinitionRegistry 用来将beanDefinition注册到容器(还没生成bean);
- RootBeanDefinition ChildBeanDefinition GenericBeanDefinition的作用 ;
spring.factories : 用来记录需要自动装配的配置类;
spring-autoconfigure-metadata.properties:用来记录配置类的装配条件(ConditionOnClass, ConditionOnBean等等)注意1:这里有一个细节,在spring-autoconfigure-metadata.properties里面写Condition等条件等 同于在配置类上写, 并且启动快;注意2:@ConditionOnClass(XXX.class)用在类上安全(判断时是加载的class原文件进行ASM技术解析文件)而用在方法上是不安全的,如果不存在类会报错 sun.reflect.annotation.TypeNotPresentExceptionProxy,所以这个注解只放在类上或者放在方法上用name属性@ConditionOnClass(name="org.example.user");
- idea里面 Properties指的是提供了get/set方法的私有字段,Field指的是没有提供get/set方法的私有字段只在本类访问;
option和provided都表示依赖不传递;
optional 表示某个依赖可选,该依赖是否使用都不会影响服务运行。例子:吃面时候,酱油就是可选的,加不加都不会影响面的正常使用。provided 表示某个依赖必须,不过该依赖通常是由系统或者容器提供,不提供会报错,不需要自己关系。例子:吃面时候,筷子、碗这样的东西都是必须的,不过这些一般是店家给顾客备好,不需要顾客自带。
查看全文
99%的人还看了
相似问题
- Kotlin学习——kt里的集合,Map的各种方法之String篇
- Office文件在线预览大全-Word文档在线预览的实现方法-OFD文档在线预览-WPS文件在线预览
- composer切换全局镜像源的方法
- Python通过selenium调用IE11浏览器报错解决方法
- 测试用例的设计方法(全):正交实验设计方法|功能图分析方法|场景设计方发
- Java8新特性 ----- Lambda表达式和方法引用/构造器引用详解
- C#中抽象类、抽象方法和接口暨内联临时变量的精彩表达
- ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)
- 类方法,静态方法和实例方法的区别及应用场景
- 【链表的说明、方法---顺序表与链表的区别】
猜你感兴趣
版权申明
本文"springboot源码阅读需要提前了解的知识点":http://eshow365.cn/6-29798-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!