java - Spring aop中@Before @After和@AfterExecution有什么区别

标签 java spring aop spring-aop

我已经开始学习 Spring AOP。

我能简单描述一下@Before @After 和@AfterExecution吗

这三个注释与@Before 和@After 混淆了,因为它们都在方法执行开始之前执行。

我能对@Before 和@After 有一些建议吗?

提前致谢。

最佳答案

This是一个很好的网站,解释了 Spring AOP,特别是这一部分;

AOP Advice Types

Based on the execution strategy of advices, they are of following types.

  • Before Advice: These advices runs before the execution of join point methods. We can use @Before annotation to mark an advice type as Before advice.
  • After (finally) Advice: An advice that gets executed after the join point method finishes executing, whether normally or by throwing an exception. We can create after advice using @After annotation.
  • After Returning Advice: Sometimes we want advice methods to execute only if the join point method executes normally. We can use @AfterReturning annotation to mark a method as after returning advice.
  • After Throwing Advice: This advice gets executed only when join point method throws exception, we can use it to rollback the transaction declaratively. We use @AfterThrowing annotation for this type of advice.
  • Around Advice: This is the most important and powerful advice. This advice surrounds the join point method and we can also choose whether to execute the join point method or not. We can write advice code that gets executed before and after the execution of the join point method. It is the responsibility of around advice to invoke the join point method and return values if the method is returning something. We use @Around annotation to create around advice methods.

关于java - Spring aop中@Before @After和@AfterExecution有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294698/

相关文章:

Java,如何在netbeans中添加库文件?

java - 以编程方式从 Java 应用程序创建 Android 虚拟设备

java - 我试图通过 spring 框架将图像路径存储在 mysql 数据库中...但无法做到这一点.. :/

java - Spring bean 如何检测它自己是否已包装在 AOP 代理中?

java - AOP + Jenkins + Maven 集成

java - 在 SecureRandom 类中使用 "SHA1PRNG"

java - 表格中的页码

java - Spring Boot - @Convert不调用convertToDatabaseColumn方法

java - Spring Boot 中的多个 DataSource 和 JdbcTemplate (> 1.1.0)

java - 如果围绕操作类创建代理建议,Spring Web 应用程序上下文不会返回 Struts2 操作方法