java - Java 中的应用程序范围的方法拦截器

标签 java playframework guice interceptor

我有一个相当大的企业应用程序,我打算编写一个适用于应用程序中所有类的方法拦截器。我知道我可以使用 Guice 来编写此类拦截器,但是,这种方法只有在包含要拦截的方法的目标对象是由 Guice ( reference ) 创建的情况下才有效。

有没有一种方法可以创建这样的拦截器?我不想注入(inject)拦截器模块,因为我无法通过 injector.getInstance() 在站点范围内控制对象创建。

顺便说一句,该应用是基于 Play 构建的!框架。

最佳答案

你需要 aspectj https://eclipse.org/aspectj/

摘自项目主页:

“Aspectj 支持横切关注点的干净模块化,例如错误检查和处理、同步、上下文相关行为、性能优化、监视和日志记录、调试支持和多对象协议(protocol)”

编辑: 您还可以查看 JDK 5 中引入的 java 代理:

http://javahowto.blogspot.com.cy/2006/07/javaagent-option.html

http://www.javabeat.net/introduction-to-java-agents/

关于java - Java 中的应用程序范围的方法拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32593886/

相关文章:

java - 在一个时间间隔内运行一个 while 循环

Java 位掩码范围

java - 声明匿名内部类

java - 什么对应于 Jersey 2 的 HK2 中的 asEagerSingleton?

java - 如何在 Guice 中绑定(bind)池(没有太多样板)?

java - 使用\r 和\n 之间是否存在功能差异 - Java

java - Playframework:发生 JPA 错误(无法构建 EntityManagerFactory)

java - 是否可以将 frege 与 Play 框架一起使用

java - 提供者递归问题

Play Framework 的日期和时间?