java - 如何分析 Java Spring/Hibernate 应用程序中的所有数据库 Activity ?

标签 java spring hibernate aop aspectj

我想使用 @AspectHandlerInterceptor 记录 Spring/Hibernate Web 应用程序中 HTTP 请求的(几乎)所有数据库 Activity 。

理想情况下,我可以将 @Aspect @Around 调用包装到 java.sql.Statement.execute,但由于该类是 Java并且可能不会使用相同的类加载器,我不得不选择第二好的。

我有一个@Aspect,用于使用execution(* org.springframework.jdbc.core.JdbcOperations.*(String, ..))调用JdbcTemplate切入点解释here ,但我还需要 Hibernate 调用的任何数据库 Activity 。

有人对此有建议吗?我愿意接受任何建议。

最佳答案

我的建议是使用AspectJ而不是Spring AOP。它在 Spring 应用程序中的使用已有详细记录。然后你将拥有完整的 AOP 能力,例如您可以使用 call() 切入点等,而不仅仅是 execution(),将您的方面应用于非 Spring Bean 的类等。

关于java - 如何分析 Java Spring/Hibernate 应用程序中的所有数据库 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635224/

相关文章:

java - 从列表延迟生成流

java - 捕获 AuthenticationProvider 中抛出的异常

java - 为什么 Java EE 版本与 Java SE 版本不匹配?

java - 如何通过 Spring Boot 使用相同的实体连接 3 个数据库?

java - try-with-resources 语句的目的是什么?

spring - JPA 标准构建器中的忽略大小写

spring - 如何从 spring webapp 中的命令行覆盖属性

java - 如何使用相同的自定义 id 生成器统一多个实体的 @GenericGenerator 声明?

java - 使用 Redis hibernate 二级缓存 - 会提高性能吗?

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown column 'day0_.calendar_id' in 'field list'