Spring AOP Capability and Goal

1.Spring声明式事务管理配置。

2.Controller层的参数校验。

3.使用Spring AOP实现MySQL数据库读写分离案例分析

4.在执行方法前,判断是否具有权限。

5.对部分函数的调用进行日志记录。监控部分重要函数,若抛出指定的异常,可以以短信或邮件方式通知相关人员。

6.信息过滤,页面转发等等功能,博主一个人的力量有限,只能列举这么多,欢迎评论区对文章做补充。

  

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 也支持。
  你可以选择@Aspectj 这种基于注解风格的或者是基于XML配置的方式;

原文地址:https://www.cnblogs.com/luv-letter/p/11038870.html

时间: 2025-01-18 04:09:47

Spring AOP Capability and Goal的相关文章

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

原官方文档链接: https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-introduction-spring-defn 个人归纳: Spring AOP Capabillity 是用纯Java实现的,不需要特殊的编译过程. 不需要控制类加载器层次结构,因此适合在servlet容器或应用程序服务器中使用. 目前仅支持方法执行连接点(建议在Spring bean上执行方法)

spring AOP Capability and Goals

还是先放官方文档(学习起点第一步) https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-introduction-spring-defn Spring AOP是用纯Java实现的.不需要特殊的编译过程.Spring AOP不需要控制类加载器层次结构,因此适合在servlet容器或应用程序服务器中使用. Spring AOP目前仅支持方法执行连接点(建议在Spring b

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

标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要术语: 切面:Aspect,有的地方也叫做方面.切面=切点+增强,表示我们在什么点切入蛋糕,切入蛋糕后我们以什么方式来增强这个点. 切点:Pointcut,类似于查询表达式,通过在连接点运行查询表达式来寻找匹配切入点,Spring AOP中默认使用AspjectJ查询表达式. 增强:Advice,有的地方也叫做通知

Spring框架之Spring AOP

一.基于注解管理的AOP 1.Spring配置文件 <!-- 配置自动扫描包,自动扫描Bean组件,切面类 --> <context:component-scan base-package="com.zhoujian.spring.anno,com.zhoujian.spring.test"> <!-- <context:include-filter type="annotation" expression="org.a

Spring AOP中pointcut expression表达式解析 及匹配多个条件

Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的. Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args() @args() execution() this() target() @target() within() @within() @annotation 其中 execution 是用的最多的,其格式为: execution(modifiers-pat

spring aop 原理

http://blog.csdn.net/moreevan/article/details/11977115 Spring AOP 实现原理 2013-09-24 15:23 79554人阅读 评论(11) 收藏 举报  分类: spring(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)

Spring AOP进行日志记录

在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个方法的调用.然后进行日志记录.使用过滤器的好处是可以自己选择性的对某一些方法进行过滤,记录日志.但是实现起来有点麻烦. 另外一种就是使用Spring的AOP了.这种方式实现起来非常简单,只要配置一下配置文件就可以了.可是这种方式会拦截下所有的对action的每个操作.使得效率比较低.不过想做详细日志

spring AOP和通知

1.  spring的通知 1.1.  AOP的概念 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象.事务管理是J2EE应用中一个关于横切关注点的很好的例子.在Spring AOP中,切面可以使用基于模式或者基于注解的方式来实现. 连接点(Joinpoint):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候.在Spring AOP中,一个连接点总是表示一个方法的执行. 通知(Advice):在切面的某个特定的连接点上执行的动作.其中包括了"aroun

spring aop 整理

aop常见概念 1.切面 事务.日志.安全性框架.权限等都是切面(就是类,事务有事务类,日志有日志类,权限有权限类) 2.通知 切面中的方法就是通知(类中针对目标方法所要插入的方法,即事务类中执行事务的方法,日志类中执行日志操作的方法) 3.目标类 (你想要侵入修改的方法所在的类,诸如我们想在查询存款时加入一些其他操作,存款管理类就是目标类) 4.切入点 只有符合切入点,才能让通知和目标方法结合在一起 (就是你想要加强的方法,就是查看工资的方法showSalary()) 5.织入: 形成代理对象