spring-aop相关内容

Spring aop切入点表达式访问方法返回类型

我有一个包含许多方法的服务接口,所有方法都接受一个 Request 对象并返回一个 Response 对象.所有请求对象都有一个共同的祖先,所有响应对象都有一个不同的共同祖先(它有一个成功标志和一个消息字段). 现在我想要一个检查权限等的周围方面,执行服务调用并在任何失败时返回一个带有失败代码的响应对象.问题是:我需要知道要创建什么类型的 Response 对象.是否有切入点表达式可以让我访 ..
发布时间:2021-11-11 04:27:51 Java开发

为什么在 Spring AOP 中对象被包装到实现接口的 JDK 代理中?

我正在学习 Spring 并且我有以下内容 考虑以下 bean 定义: 现在考虑将其声明为针对 **clientService bean 中所有方法的切入点* 的情况. 还要考虑 ClientServiceImpl 类实现 3 个接口 现在我知道使用 AOP 代理 clientService bean 并且这个代理实现了所有 3 个接口. 但是实现这三个接口的确切原因 ..
发布时间:2021-11-11 04:27:48 Java开发

AspectJ 加载时间编织器未检测到所有类

我在“aspectj"模式下使用 Spring 的声明性事务(@Transactional 注释).它在大多数情况下完全按照它应该的方式工作,但对于一种情况则不然.我们可以称它为Lang(因为它实际上就是这么叫的). 我已经能够将问题定位到加载时间编织器.通过在 aop.xml 中打开调试和详细日志记录,它会列出所有正在编织的类.有问题的类 Lang 确实根本没有在日志中提到. 然后我 ..
发布时间:2021-11-11 04:27:36 Java开发

@target 和 @within 的区别(Spring AOP)

Spring 手册说: 目标所在的任何连接点(仅在 Spring AOP 中执行方法)对象有一个@Transactional 注释:@target(org.springframework.transaction.annotation .Transactional) 任何连接点(方法只在 Spring AOP 中执行),其中目标对象的声明类型有一个@Transactional 注解:@w ..
发布时间:2021-11-11 04:27:00 Java开发

Spring AOP(方面)未执行

我使用的是 Spring 2.5.6、asm 1.5.3、aspectjrt/aspectjweaver 1.6.1、cglib 2.1_3在我的基于 Web 的 Spring 应用程序中,我有以下类: package uk.co.txttools.aspects;@方面公共类 LoggingAspect {@Before("执行(* uk.co.txttools.web.controller. ..
发布时间:2021-11-11 04:26:54 其他开发

Spring AOP - 每个带有注释的方法的切入点

我正在尝试定义一个切入点,它将捕获每个用(即)@CatchThis 注释的方法.这是我自己的注释. 此外,我想访问该方法的第一个参数,该参数为 Long 类型.可能还有其他争论,但我不在乎. 编辑 这就是我现在所拥有的.我不知道的是如何传递用@CatchThis注释的方法的第一个参数. @Aspect公共类 MyAspect {@Pointcut(value = "execut ..
发布时间:2021-11-11 04:25:56 Java开发

如何用 Spring 实现 AOP

我正在使用 Spring,我需要实现 AOP,但我对它完全陌生.有人可以帮我吗? 解决方案 第 7 章 Spring 文档 - 使用 Spring 进行面向方面的编程. 这涵盖了 Spring 中 AOP 支持的详细信息,是必不可少的阅读.如果这不能满足您的高级需求,请回到这里并发布更具体的问题. ..
发布时间:2021-11-11 04:25:37 Java开发

从 joinPoint 获取 HTTP 方法

我需要从某个方面的 joinPoint 获取诸如 POST/PATCH/GET/etc 之类的 http 方法. @Before("isRestController()")public void handlePost(JoinPoint点){//做一些事情来获得例如“POST"以在下面使用句柄(参数,“POST",someMethod::getBeforeActions);} 从point.g ..
发布时间:2021-11-11 04:25:31 Java开发

AspectJ OR 运算符似乎不起作用

我在使用 SpringAOP + AspectJ 设置日志记录方面时遇到了一些麻烦.当使用@Loggable 注释对类或方法进行注释时,我希望触发“Around"方法.以下是我的建议代码: @Around(value = "execution( * *(..)) && target(bean) && @annotation(loggable)",argnames "bean, loggable" ..
发布时间:2021-11-11 04:25:13 其他开发

如果给定条件为假,如何编写注释/方面不输入方法但返回 null?

我目前有一个要求,如果给定条件为假,我需要从 100 个方法中返回 null.我正在考虑为此使用 Java Annotations 或 Spring Aspects,这样我就不必到处编写 if-else 代码块.关于我们如何使用 Java Annotations 或 Spring Aspects 做到这一点的任何想法? 任何提示都可能有帮助. 解决方案 如果我理解正确,Spring ..
发布时间:2021-11-11 04:25:01 Java开发

要在方法中使用的 Java Aspect 返回值

我有一个运行特定逻辑的 @After java 方面.我需要它返回一个结果(一个对象),该结果可以在方面的切入点截获的方法中使用.是否可以? 解决方案 你需要的是 @Around 它允许你返回任何你想要的东西给被建议的对象: @Around("com.xyz.myapp.UserService.createUser()")公共对象 userCreationAdvice(Proceedin ..
发布时间:2021-11-11 04:24:43 Java开发

aop.xml 名称和位置?

有没有办法用LTW指定aop.xml文件的名字?或定义另一个名称和位置?我有几个我使用的软件模块,它们都使用具有不同设置的 META-INF/aop.xml.我将这些模块包含在一个 web 应用程序中,然后它完全取决于它的部署/解包方式,使用哪个 aop.xml 文件..所以经过长时间的搜索,我发现并不是所有的 LTW 编织都使用了 aop.xml 的地方更正...... 基本上我需要使用两 ..
发布时间:2021-11-11 04:24:41 其他开发

注释字段的 Spring AOP 切入点表达式

是否可以使用特定注释捕获任何字段?我的最终目标是向该字段注入一个值,但目前我的切入点是错误的(不确定正确的语法). @Pointcut("execution(* *(..)) && @annotation(com.mycompany.MyAnnotation)")private void annotatedField(){}@Around("annotatedField()")public Ob ..
发布时间:2021-11-11 04:23:53 Java开发

如何从aspectj中排除方法

我正在尝试使用 aspectj(我使用 spring 和 Load-time 编织)从日志文件中排除几种方法.有没有办法在 aop.xml 中列出排除的方法?我知道我可以为完整的课程做到这一点,但我正在寻找特定的方法.或者我可以在方面类中列出一个列表吗?谢谢 解决方案 我不知道如何在 XML 中执行此操作,但在方面本身中执行此操作很容易,因为可以使用布尔运算符组合切入点. 传统的as ..
发布时间:2021-11-11 04:23:26 其他开发