为什么需要自动装配?任何人都能解释一下自动装配的概念吗?

时间:2012-04-11 14:23:10

标签: spring spring-mvc spring-security

为什么需要自动装配...?任何人都可以向我解释自动装配的概念.... ??

Spring框架中的@autowired注释

2 个答案:

答案 0 :(得分:0)

不需要自动装配,只是方便。

这意味着如果你有一个需要InterfaceA的属性并且在Spring中声明了一个类型为InterfaceA的单个bean,而不是使用XML手动“连接”关系(将bean引用设置为另一个的属性),你可以让Spring为你做接线。

答案 1 :(得分:0)

这是初学者的常见问题。由于使用DI注入豆类(二传手感染,构造注射),为什么我们需要自动接线?自动接线也做同样的事情吧?

答案是,它可以避免编写更多代码。

1-如果使用xml文件,它可以避免在那里写任何接线代码。使用bean的 autowire属性 ,我们可以实现所需的功能。

请查看下面的代码。

没有自动接线的配置代码:

<bean id="employee" class="com.Employee">   
    <property name="name" value="Dexter"></property>
</bean>

<bean id="employeeService" class="com.EmployeeService">
    <property name="employee" ref="employee"></property>
</bean>

使用自动接线配置代码:

<bean id="employee" class="com.Employee">   
    <property name="name" value="Dexter"></property>
</bean>

<bean id="employeeService" class="com.EmployeeService" autowire="byName" /> 

请注意,我们不必编写任何内容来引用EmployeeService的属性,即Employee。但它仍被注入。 自动装配使容器能够搜索bean配置并在bean之间进行协作,而开发人员则特别提到这些。

2-如果我们使用注释,即使我们不必在xml文件上写任何内容,包括 autoware =“byName” 等。 Simply bean的setter / field / constructor 上的@AutoWired就足够了。

但是,小心使用@AutoWired on field,因为它引入了Field Injection,这不是推荐的做事方式。