在Java中使用带注释标记方法的面向方面编程
我有一个基于JAX-RS的()REST服务器,它使用Java注释用URL等标记资源方法在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),但我以前从未使用过这
@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中仍然可见