问题标签 [spring-aspects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
37 浏览

java - Spring AOP 获取修改后的参数值

我有两个 Spring 方面(我们称它们为Aspect1Aspect2)。Aspect1在Aspect2之前执行,Aspect1是一个日志记录方面,Aspect2是一个身份验证方面,它可能会使用 更新一个方法参数的值ProceedingJoinPoint.proceed(modifiedArgs)(基本上,CustomAuthentication如果身份验证通过,则将构造一个对象)。出于记录目的,我需要在Aspect1中获取更新后的参数(CustomAuthentication更新前的对象是null,更新后它将包含我需要的一些实际数据),我祈祷@AfterReturn建议可以完成工作,但它没有,所以有有什么办法可以让它工作,还是完全不可能?

编辑 1:我应该说Aspect1的顺序低于Aspect2

0 投票
1 回答
300 浏览

java - Spring方面如何跨多个对象更新一个公共字段

我正在编写 Spring 方面并寻找一种方法来更新返回对象上的字段

我的 DTO

我的转换器案例:

方面:

我的方面将从转换器类中调用,返回对象可以是 SampleDto 和 TestDto。我正在寻找一种在其中设置 BaseDto 对象的方法。

0 投票
2 回答
179 浏览

java - 切入点表达式可以匹配 Java 方法中的泛型参数吗?

我的问题是我的切入点表达式似乎与方法调用不匹配,因此未执行。我怀疑它与参数列表中的泛型有关。

我试图匹配的方法具有以下签名(实际名称被混淆):

还有另一个方法调用具有以下我不想匹配的签名,但我想我可以通过参数号过滤掉。唯一的区别是它少了一个参数(即没有String e)。

使用的切入点表达式是

一些搜索,我确实找到了一些相关的东西,但我不能说我理解它。

任何人都可以对此有所了解吗?

0 投票
1 回答
261 浏览

java - 未应用跨其他项目的 Spring aop 切入点表达式

项目结构为

  1. spring-contract
  2. spring-aop作为 (1) 的依赖项
  3. spring-service作为(2)的依赖。

@MyAnnotationspring-contract项目中有一个参数注释,一个方面类spring-aop

注释将建议的类在spring-service项目中,

类 TestField 方法未标记为建议,如果我移动同一个包中的所有类,我会得到结果。还有其他方面是在类和方法级别编写的,正在得到应用。

自定义注释

0 投票
0 回答
120 浏览

spring - 在 Aspect 中获取 pathVariable - Spring boot

我想在 Spring Boot 中实现一个注释。需要获取路径变量并在注释中使用。

我在PreAuthorize中得到这样的参数:#id。但是在这个函数中,变量路径的名字作为一个字符串来函数。

哪里做错了?我该如何解决这个问题?

0 投票
0 回答
70 浏览

spring - Spring AOP:为扩展抽象类的类中的方法创建一个切入点

我有一个抽象类,它正在实现一些基本接口。(攻击方法不是从基本接口继承的

我还有一个扩展抽象类的类。

现在我正在尝试观察方法攻击(字符串攻击者Id,浮动攻击者速度攻击)

但不幸的是,Intellij 告诉我,此建议不建议任何方法。同样在启动应用程序期间,我收到堆栈跟踪错误:

我做错了什么?有什么方法可以观察超类的方法吗?我想念什么吗?

0 投票
1 回答
214 浏览

java - 在执行线程上运行 Spring 方面的建议

我的springboot应用程序中有一个场景,我将任务提交到线程池以进行异步执行。现在子执行中的一些方法是@AfterReturn的方面点建议的一部分。我观察到即使处理是异步完成的,我的主线程也会继续执行来自子线程的切入点建议,并且我的服务不会返回值,直到所有子线程完成执行。任何指针如何使建议在执行线程本身上运行?所以简而言之,控制器方法在dao方法执行及其对应的切入点执行之前是不会返回响应的。

0 投票
0 回答
733 浏览

java - Spring AOP 中的异常本身没有通过 RestControllerAdvice 处理

在继续之前,我需要验证服务层中某些属性的 HttpServletRequest。我创建了@Before 建议,请注意 AOP 方法会抛出异常。我希望这个方法抛出的异常应该由 RestControllerAdvice 处理。我可以看到正在执行 AOP 方法,但 RestControllerAdvice 没有处理 DataNotValidException。如果其他参数的验证有任何异常或 RestController 中有任何异常,RestConrollerAdvice 工作正常。

这是我的@RestControllerAdvice。我也尝试覆盖 handleExceptionInternal 。

公共字符串句柄链接(最终 HttpServletRequest httpServletRequest,@Valid UserLinkRequest userLinkReqeust,最终 HttpHeaders httpHeaders){

0 投票
0 回答
63 浏览

java - (ClassGenException) 找不到分支的目标:ifeq [153]

Aspectj 版本:1.8.13

我有一个项目,我试图通过 Maven 插件通过方面编译器运行,但出现以下错误。

任何调试此问题或找到它所在的确切问题的指针?. 错误找不到分支并没有告诉行号。它只是打印操作码。

MVN

0 投票
0 回答
62 浏览

java - Spring 方面,在受保护的重载方法上的切入点

我试图在受保护和重载的方法 doSend 上设置 JmsTemplate 类的切入点。我感兴趣的一个如下:

protected void doSend(MessageProducer producer, Message message) throws JMSException

我的要点是:

但我收到以下警告停止服务器:

Caused by: java.lang.IllegalArgumentException: warning no match for this type name: producer [Xlint:invalidAbsoluteTypeName]

我已经添加了依赖项:

并启用了对 @Aspect 注释的支持:

@EnableAspectJAutoProxy(proxyTargetClass = true)