2011-06-30 20 views
1

我读到了使用Dependency进行接口的优点。为什么在Spring的类中使用@Autowired

我理解接口的概念 - 但为什么要在类上使用@Autowire?如果我们在课堂上使用Autowire,我事先知道什么是implmeneted类,它就像它的正式成员(没有获得这个成员的能力)!

我缺少什么?

回答

3

1)方便 - 你不需要照顾用于初始化你的组件,您可以节省输入代码和配置文件时,

2)强制良好做法 - 你的部件被装配必须写入是Spring和Spring可以管理错误检查并弹出所有错误。所以你的代码将以组件协作的方式进行组织。

3)当你的课程/豆类会增长和发展时,自动装配也会减少你的工作量。

+0

我不明白你的第三个理由。为什么它与普通的bean成员不同? – Dejell

+0

From Spring参考手册: “自动装配可以随着对象的发展更新配置,例如,如果您需要向类添加依赖关系,则无需您修改配置即可自动满足该依赖关系,因此自动装配可以在开发过程中尤其有用,而且不会否定在代码库变得更加稳定时切换到显式布线的选项。“ – Random

+0

顺便说一句 - 当你要求自动布线的合作者时,Spring正在为应用程序扫描ApplicationCOntex,因此它会考虑控制可能会给你一些改进的实例。但是请参阅Spring Reference文档来检查何时不推荐使用自动装配。 – Random

1

如果使用@Autowire而不是调用构造函数,则将该类标记为由Spring容器动态初始化。这使您可以设置弹簧配置中定义的类属性。

0

如果我们在课堂上使用的Autowire我知道 提前是什么implmeneted类 和它就像它的正式成员

当您连线通过XML,而不是注解的依赖,你也事先知道你要注入哪一类。 但是你仍然声明一个接口为依赖项,所以你可以在运行时连接这个接口的任何实现。

+0

这不是我的问题。我的问题是关于接线类而不是接口。同样,可以在不部署像@Autowire这样的完整应用程序的情况下更改XML – Dejell

相关问题