1.手动装配实现属性的注入
<bean id="studentDao" class="com.xz.dao.impl.StudentDaoImpl"></bean> <bean id="studentService" class="com.xz.service.impl.StudentServiceImpl"> <!--手动装配:设值注入,将studentDao对象注入给service对象的dao属性 --> <property name="studentDao" ref="studentDao"></property> </bean> |
缺点:当维护bean组件或bean属性增加时,需要大量工作量完成配置
2.自动装配实现属性的注入
从Spring容器中自动配置需要注入的依赖对象
|
3.基于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 autowrie属性值:指定装配的方式
属性值 |
描述 |
byName |
根据名称自动装配。 要求:依赖对象id标识名和对象属性的set方法名name(属性名)相同。 |
byType |
根据类型自动装配 要求:依赖对象的class类型和对象属性的类型(属性类型)相同。 注意:如果spring容器中有多个与对象属性相同的类型的bean,会报错。 |
constructor |
类似于byType,区别在于走构造方法。 |
no |
不自动装配。必须手动装配进行配置 默认 |
default |
装配方式和全局自动装配default-autowire的值一致。 如果autowire和default-autowrie都为default,那么就是不自动装配 |
3.3 全局的自动装配
<beans default-autowire="byName"/> 适用于所有的bean |
4.基于注解+XML配置管理Bean实现方式
4.1 Spring管理对象的注解,等价于<bean/> 默认value值取唯一标识名id
注解 |
描述 |
@Component |
创建对象注解,没有语义 默认id标识名:类名首字母小写 自定义id标识名:@Service("studentService") |
@Service |
放在service层类上注解; 业务层 |
@Repository |