Jon*_*eet 11
如果IoC容器是侵入性的,则意味着您的代码需要明确了解依赖注入.例如,在Guice中,您使用@Inject
注释(和其他).这些注释比以前更加标准化,这很好 - 它意味着只需一组注释,您就可以(至少在理论上)使您的代码可用于各种不同的侵入式IoC容器.
使用非侵入式容器,您可以编写代码而不需要参考IoC ......所有内容都只是通过对成员和注释的反思来确定,即使您没有使用IoC也会存在.
侵入式和非侵入式容器都有利弊 - 例如,在代码中更具体,可以让您更好地控制绑定的一些细节 - 但值得了解其中的差异.
检查http://forum.springsource.org/showthread.php?27846-Spring-is-non-pressive
它到底意味着什么?
“您不会被迫导入或扩展任何 Spring API,例如 Struts 会强制您扩展 Action”。
当然,在某些领域,例如Web框架,不可能避免依赖于框架的应用程序代码。但 Spring 始终致力于在配置管理方面达到非侵入式的理想
小智 5
大多数 java 框架强制您扩展它们的类之一或实现它们的接口之一。这种侵入式编程模型的示例是 EJB 2 时代的无状态会话 Bean、早期版本的 Struts、WebWork、Tapestry。
\nSpring 避免用它的 API 乱扔代码。Spring 永远不会强迫您实现特定于 Spring 的接口或扩展特定于 Spring 的类。相反,这些类通常没有任何迹象表明它们正在被 Spring 使用。
\npublic class HelloWorld {\n public String hello() {\n return "Hello World";\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n这是一个简单的 Java 类 (POJO)。没有任何迹象表明它是一个 Spring 组件。Spring 是非侵入性的,这意味着该类在 Spring 应用程序中的功能与在非 Spring 应用程序中的功能一样好。尽管 POJO 很简单,但它们也可以很强大。
\nPOJO 在 Spring 中变得强大的方法之一是使用依赖注入。
\n 归档时间: |
|
查看次数: |
8383 次 |
最近记录: |