2、Spring中的一些现象

发布时间 2023-03-22 21:13:26作者: 尐海爸爸

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

2、order

优先级@Order < Ordered接口 < PriorityOrdered接口

2.1 现象

  • 和实例化bean的顺序无关
  • 和执行bean的顺序无关
  • 和bean列表中的顺序有关(获取一批bean中的顺序有关)

3、@DependsOn

优先实例化注解中的类