参考答案
在spring中,使用autowire来配置自动装载模式。对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象。
1. 在Spring框架xml配置中,共有5种自动装配
- no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。
- byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean 的name 相同,就进行自动装配。
- byType:通过参数的数据类型进行自动装配。
- constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。
- autodetect:自动探测,如果有构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配。
2. 基于注解的自动装配方式
- 使用@Autowired、@Resource注解来自动装配指定的bean。
- 在使用@Autowired注解之前需要在Spring配置文件进行配置。
- 在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器。
- 当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。
- 在使用@Autowired时,首先在容器中查询对应类型的bean。如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据;如果查询的结果不止一个,那么@Autowired会根据名称来查找;如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。
以上,是 Spring面试题【Spring的自动装配】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—