2、Spring中的一些现象
1、注入模型
默认的注入模型:AbstractBeanDefinition.AUTOWIRE_NO=0 通过构造方法注入
1.1、setter方法名称注入模型
AbstractBeanDefinition.AUTOWIRE_BY_NAME=1
1.1.1、现象1
使用setter方法名称注入模型,在这个类中所有的public setter方法的name在容器中(setA A在容器中),就会被选用注入
1.2、setter方法类型注入模型
AbstractBeanDefinition.AUTOWIRE_BY_TYPE=2
1.2.1、现象1
使用setter方法类型注入模型,在这个类中所有的public setter方法并且参数类型必须要在容器中的都会被执行
1.3、构造方法注入模型
AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR=3
1.3.1、现象1
使用构造方法实例化bean,如果这个类中所有的构造方法只有一个参数,就会选用最后一个构造方法实例化bean
1.3.2、现象2
当构造方法有多个参数时,会选用参数最多的构造方法来实例化bean,不在bean中的 参数再多也不会选用
2、order
优先级@Order < Ordered接口 < PriorityOrdered接口
2.1 现象
- 和实例化bean的顺序无关
- 和执行bean的顺序无关
- 和bean列表中的顺序有关(获取一批bean中的顺序有关)
3、@DependsOn
优先实例化注解中的类
4、@Lookup
使用@Lookup注解可以将一个方法标记为一个“查找方法”,在调用该方法时,Spring会在运行时为其生成一个具体的实例并返回。
5、@Autowired
通过type匹配, 如果只有一个,就完成匹配
通过type匹配,如果有多个,再通过name匹配
6、 @Resource
通过名字匹配,如果只有一个,就完成匹配
通过名字匹配,如果有多个,就通过type匹配
3、其他
- BeanFactoryPostProcessor当中无法解析@Autowired和@PostCOnstruct,但是可以执行InitializingBean#afterPropertiesSet
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2019-03-22 centos7.x 安装 fastDFS