Spring AOP是用纯的java实现的。不需要任何个性的实现过程。Spring AOP不需要控制类加载器,并且它适用于Servlet容器或者应用服务器。

Spring AOP当前只支持方法执行的连接点(通知Spring beans的方法执行)。字段的拦截没有实现,虽然支持字段的拦截,可以在不破坏核心Spring AOP API的情况下添加。如果你需要通知字段获取和根性连接点,可以考虑一种类似AspectJ的语言。

用Spring AOP的方式实现AOP不同于大多数其他的AOP框架。它的目标不是提供一种最完整的AOP实现(虽然Spring AOP已经非常的强大);它更倾向于在AOP实现和Spring IoC之间提供一种封闭的整合,从而帮补解决企业应用中的哪些通用的问题。

例如,Spring框架的AOP功能通常与Spring Ioc容器结合使用。Aspects使用通用的bean 定义的语法来配置(虽然它允许强大的自动代理的方式):与其他的AOP实现相比,这是一个很重要的不同点。有些事情如果你不使用Spring AOP,将很难或者不能高效的去做,例如通知细粒度的对象(如典型的业务对象):而在这种情况下AspectJ是最好的选择。然而,我们的经验是,Spring AOP为企业级Java应用中大多数问题提供了一个优秀的解决方案,这些问题在AOP中很容易控制。

Spring AOP从来没有为与AspectJ竞争提供一个综合的AOP而纠结。我们相信这样两种基于代理的框架如Spring AOP和成熟的AspectJ都是有存在价值的,并且他们是相互补充的,而不是相互竞争的关系。Spring 2.0将Spring AOP和IoC与AspectJ无缝整合,从而是AOP的全部使用在一系列的基于Spring的应用框架中适应能力更强。这个整合没有影响到Spring AOP的API或者AOP Alliance API:Spring AOP保持着向后兼容。

Spring框架的一个核心原则就是非侵入性;这就是说你不会被强制引入框架的个性类和接口到你自己的业务领域模型。然而在Spring框架的一些地方给了你引入Spring框架特性的依赖到你的代码中:给你这些东西的原因是,在一些特定的场景,以这种方式编码可能更加的可读性.Spring框架大多数情况下给你一些选择,这样你就可以自由的做一个合理的决定,用来适应一些特定的情况和场景。

你需要选择使用AspectJ还是Spring AOP或者二者都用,而且你也要选择使用@AspectJ注解方式或者Spring Xml配置风格的方式。事实上本章节选择使用@AspectJ注解,首先要避免被认为是一种@AspectJ注解优于Spring Xml配置风格的暗示。

Sping AOP Capabilities and Goals的更多相关文章

  1. Spring AOP Capabilities ang goals

    Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的.AOP的实现可以在编译,加载,运行三个阶段来实现:Spring AOP 也不 ...

  2. Spring AOP capabilities and goals

    Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的.AOP的实现可以在编译,加载,运行三个阶段来实现:Spring AOP 也不 ...

  3. 基于注解的Sping AOP详解

    一.创建基础业务 package com.kang.sping.aop.service; import org.springframework.stereotype.Service; //使用注解@S ...

  4. Sping AOP

    Sping AOP 1.什么是AOP 面向切面编程(AOP) 是 面向对象编程的补充(OOP) 传统的业务处理代码中,通常会惊醒事务处理.日志处理等操作.虽然可以使用OOP的组合或继承来实现代码重用, ...

  5. [置顶] 使用sping AOP 操作日志管理

    记录后台操作人员的登陆.退出.进入了哪个界面.增加.删除.修改等操作 在数据库中建立一张SYSLOG表,使用Sping 的AOP实现日志管理,在Sping.xml中配置 <!-- Spring ...

  6. spring AOP Capability and Goals(面向方面编程功能和目标归纳)

    原官方文档链接: https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-i ...

  7. 基于XML配置的Sping AOP详解

    一.编写基本处理方法 package com.kang.sping.xml.aop; public class Math{ //加 public int add(int n1,int n2){ int ...

  8. Sping AOP初级——入门及简单应用

    在上一篇<关于日志打印的几点建议以及非最佳实践>的末尾提到了日志打印更为高级的一种方式——利用Spring AOP.在打印日志时,通常都会在业务逻辑代码中插入日志打印的语句,这实际上是和业 ...

  9. Spring AOP Capabilities and Goal

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

随机推荐

  1. html5 渐变按钮练习

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. /bin, /sbin & /usr/bin, /usr/sbin & /usr/local/bin, /usr/local/sbin & glibc

    操作系统为自身完成启动所需要的 /bin, /sbin 系统基本管理所需要的 /usr/bin, /usr/sbin 第三方的 /usr/local/bin, /usr/local/sbin 核心库 ...

  3. 【转载】Sikuli安装及使用——基于图像识别自动化工具

    一.Sikuli能做什么? 用屏幕截图的方式,用截出来的图形元素组合出神奇的程序实现自动化安装.卸载软件,自动化测试(Windows.mac应用测试,Web测试,移动端测试) 二.安装Sikuli 预 ...

  4. 网站https证书SSL证书相关

    网站https证书SSL证书相关 二级域名可以申请证书来使用,主域名申请的单域名证书,二级域名不在https加密保护内,通配符证书可以保护主域名下所有的二级子域名,二级域名等于和主域名使用的同一张证书 ...

  5. mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...

  6. P1450 [HAOI2008]硬币购物(完全背包+容斥)

    P1450 [HAOI2008]硬币购物 暴力做法:每次询问跑一遍多重背包. 考虑正解 其实每次跑多重背包都有一部分是被重复算的,浪费了大量时间 考虑先做一遍完全背包 算出$f[i]$表示买价值$i$ ...

  7. mongodb副本集基于centos7部署

    安装mongodb,基于端口的安装三个节点 下载安装MongoDB安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel ...

  8. Bugku-CTF之flag.php(点了login咋没反应)

    Day20 flag.php 地址:http://123.206.87.240:8002/flagphp/   点了login咋没反应 提示:hint 

  9. mfc动态控件生成

    1.变量.函数声明 std::vector<CButton*>pBtn; afx void OnBtnClik(UINT uID);//回调函数 2.分配空间 pBtn.resize(50 ...

  10. 工作中常用的 Shell 命令及技巧

    调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运 ...