spring注入类型要点

    /**
     * Spring有三种注入方法:
     * 
    *
  • 通过明确的bean definition声明来注入对象,缺点是无法注入 * ConfigurableListableBeanFactory.registerResolvableDependency() * 中注册的对象,如HttpServletRequest
  • *
  • 通过autowire * byConstructor来注入对象,可以注入包括resolvableDependency在内的对象,缺点是无法将注入对象设成“optional” * ,即:对象不存在,则报错。
  • *
  • 通过autowire * byName/byType来注入对象,相当于optional注入,缺点是不能注入包括resolvableDependency在内的对象 * ,且会自动对所有property进行注入,无法精确控制,可能造成不确定情况。
  • *
  • 通过@Autowired * annotation来注入对象,可以注入包括resolvableDependency在内的对象 * ,也可以设置optional选项。缺点是有侵入性,必须修改bean class的代码。Springext试图将注入的多样性限定在 * BeanDefinitionParser的范围中,因此使用annotation不是最好的方法。
  • *
*

* 本方法提供一个bean definition,可被BeanDefinitionParser * 调用,用来注入到的constructor arg,并支持resolvableDependency对象以及optional选项。 *

*/
 

你可能感兴趣的:(spring注入类型要点)