Spring自动装配《上》
我们把 Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为“装配”。
Spring 的 IOC 容器虽然功能强大,但它本身不过只是一个空壳而已,它自己并不能独自完成装配工作。需要我们主动将 Bean 放进去,并告诉它 Bean 和 Bean 之间的依赖关系,它才能按照我们的要求完成装配工作。
例如,一个部门(Dept)可以有多个员工(Employee),而一个员工只可能属于某一个部门,这种关联关系定义在 XML 配置的 Bean 定义中,形式如下。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--部门 Dept 的 Bean 定义-->
<bean id="dept" class="net.biancheng.c.Dept"></bean>
<!--雇员 Employee 的 Bean 定义-->
<bean id="employee" class="net.biancheng.c.Employee">
<!--通过 <property> 元素维护 Employee 和 Dept 的依赖关系-->
<property name="dept" ref="dept"></property>
</bean>
</beans>
对于只包含少量bean的应用程序,这种方法足以满足我们的需要。然而,随着应用程序的不断开发,容器中会有越来越多的bean,bean之间的依赖关系会变得越来越复杂,这使得我们编写的XML配置越来越复杂和繁琐。
我们知道,过于复杂的XML配置不仅可读性差,而且在编写时容易出错,这严重降低了开发人员的开发效率。为了解决这个问题,spring框架还为我们提供了“自动装配”功能。
Spring 自动装配
Spring 的自动装配功能可以让 Spring 容器依据某种规则,为指定的 Bean 从应用的上下文(AppplicationContext 容器)中查找它所依赖的 Bean,并自动建立 Bean 之间的依赖关系。而这一过程是在完全不使用任何 <constructor-arg>和 <property> 元素 ref 属性的情况下进行的。
Spring 的自动装配功能能够有效地简化 Spring 应用的 XML 配置,采用自动装配以减少工作量
Spring 框架式默认不支持自动装配的,要想使用自动装配,则需要对 Spring XML 配置文件中 <bean> 元素的 autowire 属性进行设置。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--部门 Dept 的 Bean 定义-->
<bean id="dept" class="net.biancheng.c.Dept"></bean>
<!--雇员 Employee 的 Bean 定义,通过 autowire 属性设置自动装配的规则-->
<bean id="employee" class="net.biancheng.c.Employee" autowire="byName">
</bean>
</beans>
- 点赞
- 收藏
- 关注作者
评论(0)