Spring IOC和Spring AOP的区别

10

什么是 Spring IOCSpring AOP 的区别以及它们的重要性?


3
在在 Stackoverflow 上提问之前,最好先进行一些简单的谷歌搜索。 - vertti
2
我看了你的问题,但对那些答案不太满意,感觉它们都很复杂。 - Sunil Rk
3个回答

14

你是否在网络上搜索过IoC和AOP?对两者都有很多参考资料。

简而言之,IoC允许外部力量来决定代码所使用的实现方法,而不是由代码本身来决定。这个“外部力量”可能是配置文件、单元测试、其他不同的代码等等。

AOP允许切面关注点在受影响代码之外实现。

Spring的“目的”包括IoC和AOP,但其范围远远超出此。

更多详情请查看:

Inversion of Control Containers and the Dependency Injection patternAspect-oriented programming 还有这个:

What is AOP, Dependency Injection and Inversion Of Control in Simple English

IoC, AOP and more


3

Spring IOC: 简单来说,通常情况下您使用new操作符创建对象并为getter和setter设置自己。所以,在Java中我们使用new操作符创建对象是没有任何问题的。但是,当您的项目规模增大且有许多开发人员参与时,您希望实现POJO编程,这时就可以使用DI。那么也许您会问 - 为什么我不能自己编写代码呢?当然,您可以使用反射、注解和XML的强大功能。但是,一些其他人已经编写了此类代码,为什么不重用第三方代码呢?有很多选择供您选择;Spring可能是最好的选择。它管理从对象创建到销毁的对象生命周期。您使用由Spring DI容器创建和设置的对象,而不是自己创建它们。

Spring AOP: 它涉及横切关注点。这意味着在大型系统中,常见的功能分散在不同的模块中。因此,AOP提供了一种最简单的方式,将通用实现以“方面”的形式取出。在这种情况下,您也可以使用代理概念编写自己的实现,但是您可以重用基于代理的代码,即使用Spring实现的APO联盟。


1
Spring IOC的目标是减少组件之间的显式依赖关系,而Spring AOP的目的是通过强制执行某些常见行为(即:非接口)来将组件连接在一起。
由于Spring AOP的目的是跨组件强制执行某些行为,因此Spring IOC非常有用以实现此目的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接