我有一个自定义的周围实现,以匹配自定义注释。我希望自定义around在外部@transactional中执行。不幸的是,这似乎不起作用。(AOP正在工作。我看到stacktraces显示了它)。
堆栈跟踪显示我的AOP在(记录器)之前执行,MyBatis会话启动事务,MyBatis关闭事务,Spring关闭事务,然后我的AOP完成。
我认为订购我的AOP实现会有所帮助。我将返回的值设置为1。我用过。这没用。我想是因为我误读了Spring的命令。
我做错了什么?
如果order属性没有为@Transactional注释配置,那么负责事务属性-AbstractPointcutAdvisor(实际上是它的子类之一)的顾问将返回ordered.lowest_prehence,它被定义为integer.max_value。
负责自定义AOP建议(同一个AbstractPointcutAdvisor的子类)的Advisor将查看实际的建议是否实现了有序接口,如果实现了,则在排序期间将使用提供的值。如果自定义AOP建议没有实现Ordered接口,Advisor返回相同的默认Ordered.lowest_prehence,排序结果变得有点不可预测。
因此,为@Transactional注释配置order属性,如下所示
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd>
.......
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" order="[Order for @Transactional]">
<beans/>
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.Ordered;
@Aspect
public class CustomAspect implements Ordered {
@Around(value = "@annotation(CustomAnnotation)")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
...
}
....
@Override
public int getOrder() {
return [Order for @CustomAnnotation];
}
....
}
然后,您可能在整个html" target="_blank">应用程序中拥有所有的排序自由(但静态地)。
实际上,是AspectJAwareAdvisorAutoProxyCreator在代理初始化时使用比较器org.springframework.aop.aspectJ.autoProxy.AspectJEXCENCEComparator对顾问进行排序,后者将排序委托给OrderComparator。稍后,在实际执行时,AopProxy的具体实现为特定方法保留了一个Advisies数组,它称之为拦截器,我想这可能用于动态重新排序,但在我看来,这些东西都不容易访问和/或配置。
我的环境是Spring Beans、TX、AOP-All Version4.0.3。我还有两个自定义事务管理器,一个是Hibernate绑定的,一个是JDBC DataSource绑定的,但我认为这并不重要
嗨,我正在尝试实现一个带有旋转的opengl程序 以下代码仅供参考:
我现在正在写一个小游戏,我遇到了一个问题。我需要在一个大圆的边界上画64个小圆。所以我想要这样的东西: 我已经试过很多方法,但都不管用。如何在java中使用java实现这一点。awt。组件#paint()方法和java。awt。图形课? 谢谢
当我尝试使用旋转图像视图时,我现在开始学习JavaFX 它绕着它的中轴线旋转,但是当我尝试使用 它随机旋转,我不知道它的旋转轴是一样的
问题内容: 有没有一种简单的方法可以围绕图片中心旋转图片?我首先使用了AffineTransformOp。看起来很简单,而且需要,并且在一个整洁的Google会话中为矩阵找到正确的参数。所以我认为… 我的结果是这样的: 如果您忽略旋转90度的倍数的情况,这非常简单(sin()和cos()无法正确处理)。该解决方案的问题在于,它围绕图片左上角的(0,0)坐标点进行变换,而不是围绕图片中心进行正常的变
我在下面有一个类,我将其附加到一个对象上,以使其围绕其轴旋转。我把雪碧的枢轴通过检查员送来了。 这正是我想要的效果,但是我遇到的问题是,每当我触摸并拖动它,然后再次触摸并拖动它,它就会捕捉到一个新的位置。 我想让它做的是,当它旋转,然后再次旋转时,精灵保持其相同的旋转,而不是捕捉到一个新的位置,我想精灵的角度重置为0。接下来,我想让角度持续旋转。所以如果我朝正方向旋转,角度应该在正方向上不断增加,
我正在使用OpenCV和Python在图像中查找圆。我能够使用OpenCV教程中的Hough圆变换代码找到圆。我想在圆心周围裁剪一个矩形。我没有能够得到正确的裁剪功能,并尝试了多种裁剪组合,要么得到了一个错误或图像的不正确部分。有人能说明我应该如何输入裁剪坐标吗?这就是我一直遇到的错误: 错误:(-215)大小。宽度 谢谢!