侵入性的确切含义是什么?是什么让春天成为非侵入性的?[已关闭]

2022-09-02 04:00:23

我是春季框架的新手。在我看到的大多数春季教程中,春天被描述为“非侵入性”。

侵入性是什么意思?在Java中使用Spring有什么优点,是什么让它成为非侵入性的?


答案 1

如果 IoC 容器具有侵入性,则意味着您的代码需要明确了解依赖关系注入。例如,在 Guice 中,您可以使用注释(和其他)。这些注释比以前更加标准化,这很好 - 这意味着使用一组注释,您可以(至少在理论上)使您的代码可用于各种不同的侵入性IoC容器。@Inject

使用非侵入式容器,您可以在完全不引用 IoC 的情况下编写代码...一切都只是由成员和注释的反射决定的,即使您不使用IoC,也会存在。

侵入性和非侵入性容器都有优点和缺点 - 例如,在代码中更具体可以让您更好地控制绑定的一些细节 - 但值得注意的是差异。


答案 2

检查 http://forum.springsource.org/showthread.php?27846-Spring-is-non-invasive

它到底是什么意思?

“您不会被迫导入或扩展任何Spring API,例如Struts迫使您扩展Action”。

当然,在某些领域,例如Web框架,根据框架,不可能避免应用代码。但Spring一直试图在配置管理方面达到非侵入性的理想。


推荐