Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的。
AOP的实现可以在编译,加载,运行三个阶段来实现;
Spring AOP 也不需要控制类的装置机制来实现. 它和适合用在servlet 容器和应用程序服务中。
Spring AOP 当前仅仅支持方法执行连接点(只对Spring beans 方法的执行进行通知).
字段拦截没有被Spring 实现,尽管可以实现对字段的访问进行拦截而不需要破坏核心的Spring AOP 接口。
如果你需要字段访问和更新类型的通知那么你可以考虑使用AspectJ 。
Spring AOP 和其他大多数AOP 框架比起来还是有所不同的,Spring AOP 的目标不是去提供一个最完整的AOP实现(尽管Spring AOP 非常的牛)
而是去实现AOP 和Spring IoC 的紧密整合,去帮助企业解决公共的问题。
(言外之意 虽然Spring AOP 不是特别的完善 但是如果你真有需要他已经整合了功能更完善的AOP 框架供你选择)
Spring 框架的AOP通常是和Spring Ioc 容器相结合来使用的.
切面是通过使用正常的Bean 定义符来配置的 (虽然允许使用强大的 自动代理能力).
这是和其他AOP实现比起来最明显的不同之处。
在某些情况下你使用Spring AOP 会非常的复杂和低效(典型的领域对象不在Spring 容器中)
AspectJ 是一个更好的选择在这种情况下
我们的经验是Spring AOP 为企业JAVA 应用程序中的大多数问题提供一个漂亮的解决方案。

Spring AOP 从来都没想和AspectJ去竞争去比谁能为用户提供更完善的AOP方案。
我们相信这两个基于代理来实现AOP的框架(Spring AOP 和成熟的AspectJ)都有自身的价值并且他们是互补的。
Spring无缝的把Aspectj 和spring 的AOP ,容器进行了整合。
为所有AOP的用户提供一致性的应用程序架构(基于Spring 框架),这种整合不影响Spring AOP 的API 和AOP 联盟API.
Spring AOP 是向后兼容的 。
Spring 框架的核心理念是非侵入,
这就是说Spring不会强制性的把和你业务逻辑,领域模型无关的Spring相关的类和接口引入到你的代码中。
在某些地方,Spring框架会给你一个选择是否要引入Spring框架依赖到你的代码库中;
给你选择的依据是因为在某些场景中你只是为了简单的实现一些功能。
不管如何Spring 总是会给你这样子的选择,让你可以做出一个明智的决定,那种方案给适合你当前的使用场景。
比如选择哪种AOP框架,或AOP风格;那么你可以选择AspectJ 或者 Spring AOP ,两个都选Spring 也支持。

spring AOP capbilities and goal的更多相关文章

  1. Spring AOP Capabilities and Goal

    Spring AOP是用纯的java实现的.不需要任何个性的实现过程.Spring AOP不需要控制类加载器,并且它适用于Servlet容器或者应用服务器. Spring AOP当前只支持方法执行的连 ...

  2. Spring AOP Capability and Goal

    AOP Capability: 1.Spring声明式事务管理配置. 2.Controller层的参数校验. 3.使用Spring AOP实现MySQL数据库读写分离案例分析 4.在执行方法前,判断是 ...

  3. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP

    阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...

  4. 学习AOP之深入一点Spring Aop

    上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...

  5. 学习AOP之认识一下Spring AOP

    心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...

  6. spring aop

    什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将 ...

  7. spring aop注解方式与xml方式配置

    注解方式 applicationContext.xml 加入下面配置 <!--Spring Aop 启用自动代理注解 --> <aop:aspectj-autoproxy proxy ...

  8. 基于Spring AOP的JDK动态代理和CGLIB代理

    一.AOP的概念  在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的 ...

  9. Spring AOP详解

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

随机推荐

  1. Schema、API Schema与MFn

    大部分知识都是相通的,Maya和USD在设计上有很多相似之处,USD的Schema粗看很难理解,但实际上与Maya的MFn有着异曲同工之处.这篇文章会简单介绍一下这两个知识点,做个对比,了解下它们在各 ...

  2. Convert.ChangeType不能处理Nullable类型的解决办法(转)

    https://www.cnblogs.com/patrickyu/p/3211115.html 在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable ...

  3. PAT 乙级 1044 火星数字 (20 分)

    1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...

  4. SSM框架-初学Mybatis框架

    SSM(Spring+SpringMVC+Mybatis)是目前项目开发比较流行的一套组合框架,而Mybatis是负责数据库操作的那部分框架,具体 我也说不上来 传统的JDBC操作比较冗长而繁琐,而用 ...

  5. navicat 导入execl失败

    在使用navicat导入execl是遇到了如下图的错误 在更换多个版本的navicat后问题依然如故. 解决办法; 1.打开需要导入的execl 2.安装一个AccessDatabaseEngine_ ...

  6. [SQL]事务回滚详解及示例

    存储过程中的 SET XACT_ABORT ON 和事务 在存储过程中写SET XACT_ABORT ON 有什么用? SET XACT_ABORT ON是设置事务回滚的! 当为ON时,如果你存储中的 ...

  7. 关于mysql文件导入提示“Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of @@CHARACTER_SET_CLIENT”问题分析

    今天用myssqldump导出数据,然后再导入另外mysql数据库时,提示Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of ...

  8. 部署redis4.0-cluster

    一.部署环境 .关闭iptables(firewalld)或添加放行规则 .关闭selinux3.部署redis实例,参考:https://www.cnblogs.com/panwenbin-logs ...

  9. 团队第六次 # scrum meeting

    github 本此会议项目由PM召开,召开时间为4-10日晚上9点 召开时长20分钟 任务表格 袁勤 负责协调前后端 https://github.com/buaa-2016/phyweb/issue ...

  10. js实现点击按钮复制文本功能

    最近项目活动中用到复制文本功能,发现在chrome中之前的clipboard的demo失效了,查了下发现是因为版本升级导致的.最新用法如下: <!DOCTYPE html> <htm ...