java - 如何在各个方法中应用 Spring AOP

标签 java spring spring-mvc spring-aop

实际上,我正在一个 Spring MVC 项目中工作,并且我在项目中成功应用和配置了 Spring AOP,但我想将 Spring AOP 应用于各个方法,例如我想检查哪个方法是否有效。

这是我的方面代码:

   @Pointcut("execution(* com.xyz.dao..*.*(..))")
    public void generalPointCut() {

   }
   @Before("generalPointCut()")
   public void logBefore(JoinPoint joinpoint) {
    Object clazz = joinpoint.getTarget().getClass().getName();
    String methodName = joinpoint.getSignature().getName();
    log.info("Entring in Method" + methodName + " in Calss " + clazz);
}

最佳答案

(评论后跟进)

您可以在切入点执行表达式中达到您想要的精确度。例如,如果您想在方法名称(包括返回类型和参数签名)方面非常具体,那么它看起来像这样:

@Pointcut("execution(public String com.xyz.dao.findMyEntity(Long))")
<小时/>

Take a look at the execution pointcut expression examples in the Spring Documetation .

您已经通过使用 * 作为通配符来拦截 com.xyz.dao 包和子包中的所有方法/类。

正如您将在示例中看到的,您可以深入到方法名称级别。

关于java - 如何在各个方法中应用 Spring AOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649067/

相关文章:

java - Hibernate架构迁移设置命名策略

java - Jackson 将 JSON 映射到 Java POJO - MismatchedInstanceException

java - 如何在 Spring 测试期间创建 CrudRepository 接口(interface)的实例?

java - 如何检索在服务器 (Tomcat) 上上传的文件的正确 URL(使用 spring MVC)

JavaFX:使用箭头键和空格键移动图像

java - 重叠 AWT 行和 Swing JLabel

java - 用于@RequestParam 和 Spring Data REST 的 Spring Converter<S, T>

java - 未找到 AddableSessionFactoryBean 异常 hbm 文件但文件在 lib/*.jar 中

java - 屏蔽的 EditText 无法正常工作 android studio

java - jsf 正则表达式验证期间允许使用 ascii 字符