问题标签 [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 投票
0 回答
220 浏览

spring - 使用Spring时如何在一个方面访问Jersey的上下文对象?

我正在为 JAX-RS 使用 Spring 5.2.x 和 Jersey 2.30.x。

我有如下注释:

在我的服务中,我使用以下注释:

@MyAnnotation当注释存在时,我想执行某些逻辑。为此,我创建了一个方面:

在这方面,我需要访问 HTTP 标头。我尝试注入 Jersey's ContainerRequest,但这似乎失败了:参考总是null.

所以我的问题是:如何ContainerRequest在 Spring 的托管 bean 中访问 Jersey 的上下文对象,例如 ?

最小的例子

我创建了一个最小的示例,请参阅https://github.com/pbillen/playground-so-61750237。您可以使用 构建它,mvn clean install -U然后使用mvn cargo:run. 如果您随后将浏览器指向http://localhost:8080/,您将在控制台中看到:

工作解决方案,绕过泽西岛并使用HttpServletRequest

我尝试HttpServletRequest在方面进行接线,然后访问Authorization标题:

我还添加到web.xml

这基本上完全绕过了泽西岛。这似乎有效,我现在可以读出Authorization方面的标题。伟大的!

但是,我的问题仍然存在:有没有办法将 Jersey 的上下文对象注入 Spring 管理的方面?

0 投票
1 回答
182 浏览

spring - 为什么 Spring boot AspectJ 有时只错过触发

我有 Spring boot 应用程序AspectJ配置为在一项服务返回数据后异步工作,但这有时无法触发,只有没有错误日志没有警告,这可以随时发生,如果我错过了任何 conf,请告诉我?

应用代码

方面代码

0 投票
1 回答
33 浏览

spring-boot - 类的方面注释

我有一个自定义注释,在 Spring Boot 中使用 AOP 处理。当我把它放在一个方法上面时它工作得很好,但是当我把它放在类上面时我无法提取它的值:(

注解

方面:

0 投票
0 回答
27 浏览

spring-aop - 使用@annotation 的pointcut 的springAOP 应用于IbatisDAO 时无效

注解:

方面:

目标类:

Aspect 在使用时不生效@Pointcut("@annotation(xxx.IbatisAnno)"),但在使用时有效@Pointcut("execution(* xxx.xxDAO.*(..))")

0 投票
0 回答
47 浏览

java - 使用注释传递值

我正在尝试创建一个注释并将一个变量作为参数传递给 impl 方法。下面是我创建注释的代码。

下面是我的 impl 类

我正在尝试在 spring-boot 应用程序中使用它

我想传递generatedUserId给我的注释Loggable1

请协助

0 投票
1 回答
318 浏览

java - Java Spring AOP:为仅属于包中某些类的 PostMappings 提供建议

您好,我正在尝试使用 aop 将日志记录应用到我的应用程序。此时,我可以使用此切入点将建议应用于应用程序中的所有 PostMapping 方法。

这是建议

我不希望这个。我希望建议仅适用于处理用户对象的 PostMappings,我猜这指的是处理 postmappings 的 3 个控制器。在这种情况下,我的包结构是这样的。

我怎么做这个切入点

只适用于以上3类?

0 投票
0 回答
393 浏览

java - Spring Boot 中如何将 AOP 日志保存到数据库中

我正在使用 AOP 记录我的 Spring Boot 应用程序中的所有方法调用。我也可以在控制台中打印它们。但我想将方法​​日志保存在数据库中。我正在发布到目前为止我所做的代码

这是我为数据提供的硬编码服务

下面是中央日志记录的 AOP 配置

以下是日志记录的输出

当我将方法保存在数据库中时,我想添加一些关于该方法的附加信息,即 findById() 和用户通过传递 id 查找信息。等等。

0 投票
1 回答
237 浏览

spring - 了解 Spring AOP 和事务方面

我正在研究当我们自动装配任何接口时 spring 提供的代理对象。这是了解https://www.youtube.com/watch?v=bEvGdWjeCy4&t=310s的一个很好的链接. 在这里他解释说,如果 POJO 实现了任何接口,那么 Spring 代理 bean 也实现了该接口(使用 JDK 代理机制)并添加额外的逻辑,例如事务逻辑(如果该方法使用 jdbc 代码注释或委托给 PlatformTransactionManager)。Spring 为我们提供了一个包装器对象,该对象具有对真实对象的引用,并且它具有在使用 MethodInvocationHandler 调用原始方法之前和之后运行的附加代码。所以我的问题是spring是如何管理该事务的。获取连接和启动事务的jdbc代码是在哪里编写的。它是在 Spring Proxy 对象中还是在任何 Aspect Class 中。

就像在 AOP 中一样,Aspects 基本上是横切关注点,例如整个应用程序共有的事务。Spring 是在代理对象中插入事务行为代码还是使用 PlatformTransactionManager 来执行此操作以及此 AOP 适合此流程的位置。如果是,如何在此处调用 Aspect 处理事务行为。呼叫是如何转移到它的?

0 投票
0 回答
22 浏览

spring-boot - 如何将自定义弹簧方面注释传递给建议

我创建了一个自定义方面注释并将其传递给周围的建议,但无法读取注释的值。我不确定如何将注释传递给建议并读取其值。此实现引发以下错误,原因是:java.lang.IllegalArgumentException: error at ::0 切入点中的正式未绑定

这是示例代码

0 投票
0 回答
139 浏览

spring - 为 Spring Boot 应用程序提取响应体

我想在我的 Spring Boot 应用程序中记录带有方面的响应正文。截至目前,我这样做如下:

但是在这里,我得到了 Http 状态代码和其他元数据的完整响应,如下所示:

在这里,我只想捕获响应正文。我无法理解如何从响应中仅提取正文。