一、手动注入

1、setter 方式注入

  1. <bean id="userService" class="org.wesoft.spring.constructor.bean.UserService">
  2. <property name="testService" ref="testService" />
  3. </bean>

2、构造方法注入

  1. <bean id="userService" class="org.wesoft.spring.constructor.bean.UserService">
  2. <constructor-arg index="0" ref="testService" />
  3. </bean>

二、自动注入

1、XML 自动注入

autowire 属性中有:byType,byName,constructor,default,no

  1. <bean id="userService" class="org.wesoft.spring.constructor.bean.UserService" autowire="byType">
  2. </bean>
  • byType根据 setter 方法的中参数的类型,来寻找要注入的 bean,赋值给方法参数
  • byName根据 setter 方法名称,去掉前缀 set 后,取后面的名称,来寻找要注入的 bean,赋值给方法参数
  • constructor :推断构造方法
  • default :使用 XML beans 的标签中的自动注入方式来进行注入
  • no :不进行自动注入

2、使用注解

  • @Autowired :可用在方法(包括 setter 方法),构造函数、属性上,是 byType 再 byName 来进行注入的,也就是说,先根据类型查找 bean,如果查找到多个的话,那么在根据名称去查找,如果找到一个符合要求的就进行注入