java - 在 Spring AOP 中指定切入点

标签 java spring spring-aop

我熟悉 Spring AOP,尽管没有太多实践经验。

我的问题是,如果我想为类的某些方法而不是全部方法提供一些 AOP 功能,那么可以使用单切入点吗?假设我的类中有四个方法 save1,save2,get1 和 get2 ,我想仅在 save1 和 save2 上应用 AOP,那么在这种情况下我该如何创建一个切入点?我的切入点表达式会是什么样子?或者这可能吗?

最佳答案

有很多方法可以做到这一点(使用通配符表达式,使用aspectJ注释,..) 我将给出一个方面的例子

class MyClass{
          @MyPoint 
          public void save1(){
          }  

          @MyPoint
          public void save2(){
          }  

          public void save3(){
          }  

          public void save4(){
          }  

}

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyPoint {
}

@Aspect
@Component
public class MyAspect {
    @Before("@annotation(com.xyz.MyPoint)")
    public void before(JoinPoint joinPoint) throws Throwable {
        //do here what u want
    }

}

所以你已经准备好了,只要你标记了@Mypoint注解,spring就会在这个方法之前调用aspect,确保spring正在管理这个方法和对象,而不是你。在你的类路径中包含aspectJ

关于java - 在 Spring AOP 中指定切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588885/

相关文章:

java - 'com.itextpdf.text.exceptions.InvalidPdfException : PDF header signature not found' when reading the input stream from servlet

java - Spring 可以在 OPTIONS 方法上自动生成 'Allow' header 吗?

java - 表 "users"上的更新或删除违反了表 "fk_owner_id"上的外键约束 "movie_list"

实现 Hibernate Search 时出现 Java 链接错误

java - Spring AOP获取修改后的参数值

java - 昆德拉使用 getResultList() 方法时抛出空指针异常

java - 通过代理连接 Facebook 服务器时出错

java - Spring MVC 和 "magic string"返回类型

java - 通过分布式应用系统端到端跟踪事务

java - 为包中的所有类创建切入点?