Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用带注释标记方法的面向方面编程_Java_Annotations_Aop - Fatal编程技术网

在Java中使用带注释标记方法的面向方面编程

在Java中使用带注释标记方法的面向方面编程,java,annotations,aop,Java,Annotations,Aop,我有一个基于JAX-RS的()REST服务器,它使用Java注释用URL等标记资源方法 @javax.ws.rs.GET @javax.ws.rs.Path("/users/{user_id}") public Response getUser(...) 当客户端调用GET/users/1234http/1.1URL时,将自动调用 我发现我的资源方法有越来越多的“通用”逻辑,每种方法都必须执行这些逻辑:日志记录、安全检查、查询参数验证等。我相信这需要面向方面编程(AOP),但我以前从未使用过这

我有一个基于JAX-RS的()REST服务器,它使用Java注释用URL等标记资源方法

@javax.ws.rs.GET
@javax.ws.rs.Path("/users/{user_id}")
public Response getUser(...)
当客户端调用
GET/users/1234http/1.1
URL时,将自动调用

我发现我的资源方法有越来越多的“通用”逻辑,每种方法都必须执行这些逻辑:日志记录、安全检查、查询参数验证等。我相信这需要面向方面编程(AOP),但我以前从未使用过这种技术。如果我使用其中一个AOP框架,我的注释“标签”会被保留,以便JAX-RS驱动程序可以找到我的资源方法吗?哪些AOP框架可以满足我的需求?

满足您的需求:AspectJ可以拦截带注释方法的调用或执行,而无需更改或删除注释

例如,我们在JPA实体上使用AspectJ,这些类在Hibernate中仍然可见