spring学习 十五 spring的自动注入

一  :在 Spring 配置文件中对象名和 ref=”id” ,id 名相同使用自动注入,可以不配置<property/>,对应的注解@Autowired的作用

二: 两种配置办法

(1) 在<bean>中通过 autowire=”” 配置,只对这个<bean>生效

(2) 在<beans>中通过 default-autowire=””配置,表当当前文件中所有<bean>都是全局配置内容

三:autowired的取值

3.1 default: 默认值,根据全局 default-autowire=””值.默认全局和局部都没有配置情况下,相当于 no
3.2 no: 不自动注入
3.3 byName: 通过名称自动注入.在 Spring 容器中找类的 Id,如果有一个bean的id与当前bean的属性的变量名一样,就注入
3.4 byType: 根据类型注入.
  3.4.1 spring 容器中不可以出现两个相同类型的<bean>
3.5 constructor: 根据构造方法注入.
  3.5.1 提供对应参数的构造方法
  3.5.2 底层使用 byName, 构造方法参数名和其他<bean>的 id相同.

     <bean id="people" class="com.spring.pojo.People" autowire="constructor">
               <!-- <property name="teacher" ref="teacher"></property> -->
       </bean>
       <bean id="teacher" class="com.spring.pojo.Teacher"></bean>

如果bean  people这个bean要注入teacher这个bean ,且采用contructor方式,那么bean people代表的类必须有一个构造方法,且构造方法中必须有一个参数,参数的类型是 bean teacher对应的类的类型,且参数名称必须是“teacher”,即被注入bean的id定,要与接受注入的类的构造方法的参数一样,所以本质是byName

原文地址:https://www.cnblogs.com/cplinux/p/9744329.html