问题标签 [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 回答
517 浏览

spring - 弹簧方面没有在 getConnection 上被解雇

我试图在 spring 3.2.3 中拦截 getConnection 调用

调用 getConnection 时不会调用此方面。切入点定义执行是否有错误(java.sql.Connection javax.sql.DataSource.getConnection(..))

0 投票
0 回答
254 浏览

spring - @Cachable 注释破坏了方法的现有方面

我有一个使用 javax.annotation.security 中的 @RolesAllowed 注释的方法,该方法由现有方面使用。

我们正在向我们的服务层添加弹簧缓存支持。缓存工作得很好,但我们注意到方法上的任何 @Cach* 注释都不会被击中。

这是方法签名。

这是我的缓存配置。我们正在使用 spring boot 1.5.14 AutoConfig。

我已经尝试使用 proxyTargetClass = true 和 mode = aspectJ 的 @EnableCaching。两者都没有工作。mode = aspectJ 导致 @RolesAllowed 注释再次起作用,但随后 @Cacheable 被忽略。

这是存在 @Cacheable 时不再受到影响的方面。

}

0 投票
1 回答
2094 浏览

aspectj - 如何从触发 Aspect 方法调用中排除类

@Aspect我在服务方法中有一个方法logChangesAndAnnounceNewContributions,只要在 webapp 中的某个地方调用 Spring-data 的保存方法,就会触发该方法JpaRepository。我不希望在 Aspect 类本身中使用 save 方法时调用 logChanges 方法,所以我在切入点定义中使用了它 !within(Services.SystemListenerService)。但它没有任何效果!尽管在定义中使用了此条件,但仍会调用 save 方法。完整的定义如下所示:

我在这里想念什么?

编辑:我尝试将 !within content 更改为,!within(@org.aspectj.lang.annotation.Aspect *)但这也不起作用..

0 投票
1 回答
510 浏览

spring - 在自定义注释spring aop中获取返回值

我写了一个简单的自定义注释来将HttpHeaders设置为ResponseEntity因为在每个地方都复制了代码。

注释接口和类。

RestController 类

现在我想将返回的 HttpHeaders 值注释到休息控制器类。

是否有人可以描述它发生的原因以及如何解决此问题,这将非常有帮助。提前致谢

0 投票
0 回答
63 浏览

java - 导入 spring-aspects 后,找不到某些控制器

我写了2个控制器——GoodController和UserController,导入spring-aspects后,我的UserController url 404,但是GoodController正常,找不到原因不知道怎么解决。我所有的 pom.xml 如下:

项目父 pom.xml

用户模块 pom.xml:-- 无依赖

好模块 pom.xml

ApplicationStarter 模块 pom.xml

通用模块 pom.xml:-- 无依赖

用户控制器.java

GoodController 和 UserController 几乎一样。

记录 aop 配置:

0 投票
1 回答
561 浏览

spring-boot - 使用 Spring AOP 在 mongoDb 中存储新旧值

我是 Spring AOP 世界的新手。我正在尝试使用 AOP 构建 Spring Boot 日志记录。我在 MongoDB 中创建了一个名为“ Audit report”的集合,它存储对象的旧值和更新值。为此,我正在使用Spring AOP@Before@After注释。假设我必须编辑对象,因此应将其以前的名称和更新后的名称输入数据库。

这是我的审计报告课,

这个id实体类,

这是我的方面类,

当我尝试编辑 DeliveryMethod 时,我正在使用get具有相同参数的方法获取以前的记录,即Id. 但它给了我这样的错误,

这是我的控制器类,

这是模型类,

但是这种方法存在于我的控制器中。谁能建议我解决这个问题?或者建议我在编辑对象时获取旧值的替代方法。提前致谢。

0 投票
1 回答
1004 浏览

spring - @Async 和 @Transaction 方面顺序

使用 Spring Boot 2.1.1.RELEASE / Spring Framework 5.1.4,我有一个应用程序通过以下方式启用@Async@Transactional注释:

运行同时使用两者注释的方法时,首先创建事务,然后开始异步执行。因此,实际的方法体不会在事务内部执行。

我如何配置spring /方面以有意义的顺序实际执行,例如在新线程上启动事务?

附带说明一下,对于较旧的 Spring Boot 1.5.17 / Spring Framework 4.3.20,它确实有效。

演示:https ://github.com/jaarts/spring-asynctransaction-demo

0 投票
1 回答
647 浏览

websphere - IBM JDK 抛出错误 0 类 {0} 已编织且尚未以可重新编织模式构建 [Xlint:nonReweavableTypeEncountered]

我们有几个方面,方面类是用@Aspect 定义的,并在 METAINFO/aop.xml 中声明了相同的方面:

aop.xml

以下错误仅在带有 WebSphere 的 IBM JDK 环境中引发。

例外:

Test.java::0 类 {0} 的错误已经编织并且尚未以可重新编织模式构建 [Xlint:nonReweavableTypeEncountered]


相同的代码适用于 Tomcat + Oracle JDK 堆栈组合。

0 投票
0 回答
389 浏览

apache-poi - 使用 AspectJ 在 Maven 中编织依赖项不起作用

我需要拦截apache POI API( HSSFCell setCellValue)的某些方法,我打算使用Spring AspectJ来满足这个要求。但是经过一些测试,我发现它不起作用。不确定是否可以像 apache POI 那样编织外部 jar?

这是我的相关代码pom.xml

和我的aspectJ java类:

正确地,当我与 apache POI API 进行任何交互(例如调用setCellValueon 方法HSSFCell)时,它将打印hello world到控制台,但在我的情况下没有发生任何事情。

0 投票
1 回答
1152 浏览

java - 如何屏蔽自动生成的 swagger java 类中的任何参数

如何屏蔽自动生成的 swagger java 类中的任何参数?
如果手动 getter setter 类,我们可以编辑 toString 方法,但在自动生成的类中,它将在每次构建时生成 swagger pojo 类,那么如何修改由 swagger 自动生成的 toString 方法?

下面是代码

api.yml(通过swagger生成POJO类)

自动生成 POJO 类中的toString方法

在LoggingAspect类中添加一些日志

在这个日志joinPoint.getArgs()中有完整的 toString 数据,带有 Id 名称和 nric,这里我想显示屏蔽的 nric而不是直接的nric值。

如果它不是自动生成的类,那么我们可以在 toString 方法中添加类似下面的内容。

但是在这种自动生成的类的情况下,有没有办法屏蔽任何属性仅用于记录目的?

我已经尝试在 yml 文件中使用标志,如下所示

但这也没有以预期的方式形成属性。