Spring自动装配是什么?Spring自动装配方式

    /    2018-05-31

  Spring是受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员都在使用 Spring 框架创建高性能、易于测试和可重用的代码。

  自动装配是Spring框架的重要功能,是使用Spring满足bean依赖的一种方式,Spring会在应用中为某个bean寻找其依赖的bean,Spring中bean有三种装配机制,分别是:在xml中显示配置、在java中显示配置以及隐式的bean发现机制和自动装配。

  Spring自动化装配可以借助@Autowired属性实现,以下是自动装配@Autowired属性的六个值的简要介绍:

  1. byName

  从Spring环境中获取目标对象时,目标对象中的属性会根据名称在整个Spring环境中查找标签的id属性值。如果有相同的,那么获取这个对象,实现关联。

  整个Spring环境:表示所有的spring配置文件中查找,那么id不能有重复的。

  2. byType

  从Spring环境中获取目标对象时,目标对象中的属性会根据类型在整个spring环境中查找标签的class属性值。如果有相同的,那么获取这个对象,实现关联。

  缺点:如果存在多个相同类型的bean对象,会出错。

  如果属性为单一类型的数据,那么查找到多个关联对象会发生错误。

  如果属性为数组或集合(泛型)类型,那么查找到多个关联对象不会发生异常。

  3. constructor

  使用构造方法完成对象注入,其实也是根据构造方法的参数类型进行对象查找,相当于采用byType的方式。

  4. autodetect

  自动选择:如果对象没有无参数的构造方法,那么自动选择constructor的自动装配方式进行构造注入。如果对象含有无参数的构造方法,那么自动选择byType的自动装配方式进行setter注入。

  5. no

  不支持自动装配功能。

  6. default

  表示默认采用上一级标签的自动装配的取值。如果存在多个配置文件的话,那么每一个配置文件的自动装配方式都是独立的。

  自动装配是Spring框架的重要功能,能显著减少装配的数量,因此在配置数量相当多时采用自动装配,可以减少工作量,且自动装配可以使配置与Java代码同步更新,因此,在开发过程中建议采用自动装配,在系统稳定时可改为显性装配的方式。

(8)

分享至