Spring框架中 自动装配的详解 属性值的详解

  1. 手动装配实现属性注入

<bean id="studentDao" class="com.xz.dao.impl.StudentDaoImpl">bean>

<bean id="studentService" class="com.xz.service.impl.StudentServiceImpl">

     

      "studentDao" ref="studentDao">

bean>

  缺点:当维护bean组件或bean属性增加时,需要大量工作量完成配置。

  1. 自动装配实现属性注入
  1. 基于xml配置实现自动装配
  2. 基于注解实现实现自动装配

  1. 基于xml配置实现自动装配

   3.1 在bean标签上加上autowire自动装配属性

  <bean id="studentDao" class="com.xz.dao.impl.StudentDaoImpl">bean>

  <bean id="studentService" class="com.xz.service.impl.StudentServiceImpl"

         autowire="byName">

  bean>

   3.2  autowire属性值

属性值

描述

byName

根据名称自动装配。

要求:对象id标识名和对象属性的set方法名相同。

byType

根据类型自动装配

要求:对象的class类型和对象属性的类型相同。

注意:如果spring容器中有多个与对象属性相同的类型的bean,会报错。

constructor

类似于byType,区别在于走构造方法。

no

不自动装配。必须手动装配进行配置

default

装配方式和全局自动装配default-autowire的值一致。

如果autowire和default-autowrie都为default,那么就是不自动装配

  3.3 全局的自动装配

<beans default-autowire="byName"/> 适用于所有的bean

  1. 基于注解实现实现自动装配
    1. Spring管理对象的注解,等价于

注解

描述

@Component

创建对象注解,没有语义

默认id标识名:类名首字母小写

自定义id标识名:@Service("studentService")

@Service

放在service层类上注解

@Repository

放在dao层类上注解

@Controller

放在控制层Controller类上注解

    1. 自动注入注解,等价于autowire属性

注解

描述

@Resource

Jdk提供注解,不需要提供set方法。

先根据byName进行注入,如果没有name一样的,

再根据byType进行注入。

@Autowired

Spring提供注解,不需要提供set方法。

根据byType进行注入。

  1. 自动装配和手动装配

装配类型

优点

缺点

手动装配

对象之间依赖明确,xml可读性高

配置工作量大

自动装配

简化配置

对象之间依赖不明确

你可能感兴趣的:(spring,eclipse,spring,jar)