Sping AOP Capabilities and Goals
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的更多相关文章
- Spring AOP Capabilities ang goals
Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的.AOP的实现可以在编译,加载,运行三个阶段来实现:Spring AOP 也不 ...
- Spring AOP capabilities and goals
Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的.AOP的实现可以在编译,加载,运行三个阶段来实现:Spring AOP 也不 ...
- 基于注解的Sping AOP详解
一.创建基础业务 package com.kang.sping.aop.service; import org.springframework.stereotype.Service; //使用注解@S ...
- Sping AOP
Sping AOP 1.什么是AOP 面向切面编程(AOP) 是 面向对象编程的补充(OOP) 传统的业务处理代码中,通常会惊醒事务处理.日志处理等操作.虽然可以使用OOP的组合或继承来实现代码重用, ...
- [置顶] 使用sping AOP 操作日志管理
记录后台操作人员的登陆.退出.进入了哪个界面.增加.删除.修改等操作 在数据库中建立一张SYSLOG表,使用Sping 的AOP实现日志管理,在Sping.xml中配置 <!-- Spring ...
- spring AOP Capability and Goals(面向方面编程功能和目标归纳)
原官方文档链接: https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-i ...
- 基于XML配置的Sping AOP详解
一.编写基本处理方法 package com.kang.sping.xml.aop; public class Math{ //加 public int add(int n1,int n2){ int ...
- Sping AOP初级——入门及简单应用
在上一篇<关于日志打印的几点建议以及非最佳实践>的末尾提到了日志打印更为高级的一种方式——利用Spring AOP.在打印日志时,通常都会在业务逻辑代码中插入日志打印的语句,这实际上是和业 ...
- Spring AOP Capabilities and Goal
Spring AOP是用纯的java实现的.不需要任何个性的实现过程.Spring AOP不需要控制类加载器,并且它适用于Servlet容器或者应用服务器. Spring AOP当前只支持方法执行的连 ...
随机推荐
- linux关机(重启)命令
Linux系统关机命令: #关机命令 1.halt 2.poweroff 3.shutdown -h now 立即关机(具有root权限用户使用)#重启命令 1.reboot 2.shutdown - ...
- Lua table遍历
工作中,栽了一个“坑”,特此备录. [1]遍历table1,每次结果可能都不同 -- 获取value ", addr="xian"} for k, v in pairs( ...
- python交互的几种方式
# 第一种交互方式 name = input("name:")age = input("age:")job = input("job:")s ...
- ARM Mcp2515添加驱动
Mcp2515添加驱动 2012-01-10 21:39:32 上图1: 上图2: 上图3: 之前完成了spi接口驱动,所以mcp2515也是通过spi来读写数据的.就是多加一个中断脚. 另外在2 ...
- go语言入门教程:基本语法之数据类型
出处:千锋教育go语言教研部 作者:茹姐 一.基本数据类型 以下是go中可用的基本数据类型 1.1 布尔型bool 布尔型的值只可以是常量 true 或者 false.一个简单的例子:var b bo ...
- nodejs笔记之路由及util和url模块
路由是URL到函数的映射:对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作.对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等. 如: /u ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- delphi 利用 InterlockedCompareExchange 实现主线程维一锁等待
在进行资源锁定时,一般是线程之间进行交互,很少需要在主线程也对资源进行锁定. 不过在一些复杂的业务中,存在子线程与主线程的交互,且一些资源也同步在主线程中使用时,主线程资源锁,就有存在的必要. 假定有 ...
- Docker Registry私有仓库搭建
部署registry 准备一个registry.mydocker.com 的证书 对私有registry取名registry.mydocker.com 目录规划 仓库数据目录:/data/docker ...
- 算法(第四版)C# 习题题解——2.1
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...