Spring注释基本问题

时间:2011-07-22 10:16:32

标签: spring annotations

据我了解,依赖注入的主要目的是以声明方式分离所有依赖关系,以便我们可以轻松地轻松查看和更改依赖关系结构......对吗?

然后通过使用遍布代码的依赖注释,我们不仅仅回到非集中式系统(类似于简单的新运算符),这很难调整吗?

3 个答案:

答案 0 :(得分:2)

@Autowired / @Inject注释通常声明依赖于接口而不是具体类(如new的情况),因此您仍然可以通过控制来控制应该注入哪些实现哪些bean在上下文中声明。此外,可以手动覆盖这些依赖项。

@Component - 家庭注释也可以控制,因为您可以从组件扫描中排除特定的类。

答案 1 :(得分:0)

依赖注入的目的是将依赖关系的声明与实际满足这些依赖关系分离。如何完成声明是一个正交的问题。

@Autowired是一种依赖声明。使用@Autowired支持封装。类的注入依赖项直接记录在代码中而不是另一个文件中。

答案 2 :(得分:0)

这些类型的讨论倾向于变得具有宗教性,因此我将避开“主要目的”定义以及这种或那种模式是否真正真实地实现的语义。

我试着将其视为可以提供某些功能的工具。例如,使用Spring(DI)是分离接口和实现的好方法。特定接口的用户不需要知道如何创建实现(或它所在的位置)。这往往是好事。使用Spring还可以实现许多其他功能:AOP和AOP驱动的功能,如事务处理,范围和一系列与其他框架和技术的预构建集成。注释使这很容易,更清晰,最重要的是,我不必在不实际或不可能的地方使用它们 - 总是可以选择用XML配置它。