Spring实战3-最小化Spring XML配置

显式装配spring

自动装配Bean属性ui

一共有四种自动装配类型(须要在Bean配置里添加autowire属性来指定用哪一种类型)
spa

  • byName-把与Bean的属性具备相同名字或ID的其余Bean自动装配到Bean的对应属性中。若是没有跟属性的名字相匹配的Bean,则该属性不进行装配。--实际上对比的是Bean ID。io

  • byType-把与Bean的属性具备相同类型的其余Bean自动装配到Bean的对应属性。若是没有跟属性的类型相匹配的Bean,则该属性不被装配。局限性若是Spring找到多个Bean,它们的类型都与须要自动装配的属性的类型相匹配,这个时候SPring不会猜想哪个更适合,而是抛出异常。不过提供了以下参数来指定用哪一个Bean来注入。<bean>元素的primary属性。若是该值为true,那么该Bean将比其余候选Bean优先被选择。默认都是true。若是但愿排除某些Bean做为候选者,那么能够设置它们的autowire-candidate属性为false.则它们都会被忽略做为候选Bean.require

  • constructor-把与Bean的构造器入参具备相同类型的其余Bean自动装配到Bean构造器的对应入参中。配置

  • autodetect-首先尝试使用constructor进行自动装配,若是失败,则再尝试使用byType进行自动装配。
    date

使用注解装配
引用

2.5引入注解装配,与在XML中使用autowire属性自动装配无太大差异。默认禁用注解装配。若需使用,则须要在spring中启用它。<context:annotation-config/>.spring支持以下几种用于自动装配的注解
方法

  1. Spring自带的@Autowired注解im

  2. JSR-330的@Inject注解

  3. JSR-250的@Resource注解

1:使用@Autowired注解:能够标注于setter方法,标注于须要自动装配Bean引用的任意方法;甚至能够标注构造器;还能够直接标注属性,并删除setter方法,甚至都不会受限于private关键字。

有两种局限:没有匹配的Bean,或者存在多个匹配的Bean.

a)可选的自动装配。 默认状况下,@Autowired具备强契约特征,其所标注的属性或参数必须是可装配的。若是没有Bean能够装配到@Autowired锁标注的属性或参数中,自动装配就会失败。属性亦可设置成null,经过设置该注解的required属性为false来配置自动装配是可选的。

b)限定歧义性的依赖:当有多个Bean都彻底知足装配条件,而且均可以被装配到属性或参数中的状况时,为了帮助@Autowired鉴别出哪个Bean才是所须要的,可使用限定器注解@Qualifier。咱们亦能够自定义限定器(Qualifier)

相关文章
相关标签/搜索