问题标签 [aspect]

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 回答
1155 浏览

spring - Spring @Transactional 在将方面放在方法之后不会回滚

我有两种交易方法,一种是另一种。当围绕方面没有设置方法时,事务注释工作得很好。调用methodA之后我们调用methodB,methodB在DB中写入一些东西,然后我们在methodA中返回,抛出异常,然后methodB回滚。但是当我把我的方面放在方法A上时,方法B不会回滚。我无法弄清楚那里发生了什么。我尝试了许多传播属性的组合,但似乎都没有。提前致谢。我使用 Spring 2.5.4

我在 applicationContext.xml 中有这个配置:

我的 LoggingAspect 类是这样的:

方法A是这样的:

方法B是这样的:

0 投票
1 回答
896 浏览

java - 将参数传递给来自xml的不同切入点的相同方面方法

是否可以对多个切入点使用相同的方面方法但使用 xml 给出的不同参数?像这样的东西(1和2是参数):

当我调用 methodA 时,我希望 logProcess 方法输出 1,当我调用 methodC 时,我希望 logProcess 方法输出 2

我的 logProcess 方法:

Spring @Transactional 在将方面放在方法之后不会回滚

0 投票
0 回答
1049 浏览

java - 将石英调度程序连接在方面包装后不关闭

我的方面流程有问题。我已经安排了我在方面包裹的石英工作女巫。当我在没有方面的情况下这样做时,我没有问题,但是当我在进程执行多次后将其包装在方面时,应用程序在尝试连接到数据库时似乎处于挂起状态。日志显示由于 ConnectionWaitTimeoutExceptions 导致的几个 J2CA0045E 错误,以及涉及从池中获取空闲连接的问题的其他错误。当我寻找我的免费连接时,没有可用的连接。似乎我的方面没有关闭连接。我不明白为什么会发生这种情况,因为当我不使用方面时,一切都运行良好并且连接已关闭。

我在 applicationContext.xml 中的方面配置是这样的:

我的 loggingAspect 类是这样的:

有谁知道可能是什么问题?提前致谢!

0 投票
2 回答
810 浏览

java - Spring AOP 可重入方面

是否可以使用 Spring AOP(或 AspectJ)创建可重入方面?

这是一个例子:

和方面:

}

现在我想知道 calcFibonacci 被调用了多少次(计算在经常调用中)。

有没有办法做到这一点?

0 投票
1 回答
200 浏览

java - 在java osgi中拦截方法调用

我目前正在为基于 OSGi (java) 的平台开发备份和恢复机制,并希望执行以下操作

BUNDLE A - 一些包装:

我希望能够向此方法添加类似注释的内容,如下所示:

这样我就可以在另一个包中收集类 + 方法信息以及变量数据本身,以便我可以备份该数据,“方法调用 blabla 包中的类 blabla 并带有参数.. .. ..”。

这在 OSGi 中可能吗?我已经阅读了 AspectJ,但我发现的大多数信息似乎都过时了。或者我可以向目标平台添加一个实现吗?

0 投票
0 回答
381 浏览

spring - Spring AOP:为日志传递参数

我们正在使用 aorg.springframework.beans.factory.BeanFactoryAware来运行一系列命令。系统的所有服务都使用一项服务来进行审计日志记录。此审计日志服务需要一个唯一标识符,该标识符在我们的BeanFactoryAware.

现在,这个唯一标识符正在每个函数调用中传递。一种选择是使用某种类型的上下文对象来传递。最好不要这样做,因为这会使系统中不了解系统的其他部分无法使用这些服务BeanFactoryAware

是否有一些 AOP 方法可以实现更清洁的解决方案?一种审计日志可以获取唯一标识符,而BeanFactoryAware审计代码和审计代码之间的所有代码都不知道该值?


根据请求,这里有一些代码:

ChainRunner 将 msgLinkId 添加到链的上下文中。每条消息都会将 msgLinkId 从上下文中拉出,并将其作为整数参数传递给服务,例如 AServer.aMethod。最后,服务需要在 LoggerService 上记录活动,向其传递有关正在记录的内容的参数,其中第一个参数是 msgLinkId。

就目前而言,所有服务都通过 XML 配置进行连接:

那么问题来了:是否可以通过AOP让msgLinkId下跳到LoggingService,而不必经过很多层的服务呢?

0 投票
1 回答
276 浏览

spring - 弹簧方面切入点定义

在 Spring 中,我们可以共享常见的切入点定义,如下所示

以上可以像下面一样使用

是否可以将关节点传递给共享点切割定义。

如下所示,myCustomCheck 是另一个共享切入点定义,它根据传递给它的关节点检查某些内容。

这可行吗?

谢谢

生活。

0 投票
1 回答
136 浏览

.net - 带有构建子文件夹的解决方案的 Postsharp 方面

我们有以下构建输出结构:

如果我们在根目录 ( ) 中的项目上使用方面(取决于NLog和),它会很好地工作。Json.Net[assembly: OurAspect]

如果我们尝试在子文件夹中编译的项目中使用此方面,则会出现异常,即无法找到该方面所依赖的 DLL。

我们如何配置 PostSharp 以使用根构建目录中的 DLL 来编译子文件夹中的项目?

0 投票
2 回答
559 浏览

java - @Around Aspect 在 @transaction 注解 Spring 之前执行

我有一个带有事务注释的类:

我有一个方面类:

在将数据保存在数据库中之前,我的@Around注释正在执行。addUser请建议我@Around将数据保存到数据库后如何执行。

0 投票
2 回答
1734 浏览

java - @RequestMapping MethodInterceptor 方面忽略@Validated 注解

MethodInterceptor我对方面和@Validated注释有一个奇怪的问题。当我添加方法拦截器来拦截所有用 注释的方法时@RequestMapping@Validated注释不起作用。当我删除它时,它又可以正常工作了。我认为,我的拦截器会覆盖@Validated. 有什么办法可以做到这一点,因为我不想在我的拦截器中执行验证,因为它是为了审计东西。

这是验证器:

控制器代码:

拦截器代码:

我的环境是带有休息控制器(杰克逊映射器)的 Spring MVC(3.2)。