- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 @Aspect 注释声明了我的切面,但建议似乎没有得到应用。该方面适用于我拥有的其他一些项目,主要区别似乎是其他项目完全使用注释连接,并且这个特定项目是 xml 连接的。唯一连接注释的 bean 是 Aspect。所以我想知道spring的aspectj支持是否在使用aspectj-autoproxy时对在xml中定义bean的顺序很敏感。
例如,在 xml 中的 aspectj-autoproxy 之后声明的 bean 是否会被考虑用于 AOP 切入点?
编辑:
我移动了<aop:aspectj-autoproxy />
直到所有 bean 都被创建之后仍然没有运气。
基本上我的代码包括:
@Component
@Aspect
public class SomeAspect {
@Pointcut("@annotation(MyAnnotation)")
public void isX() {}
@After("isX()")
public void XX() {
System.out.println("Called aspect");
}
}
public class XController extends AbstractCommandController {
@MyAnnotation
public void handleX(...) {
// do stuff
}
@Override
protected void handle(...) {
return handleX(...);
}
}
<context:component-scan base-package="package.of.some.aspect" />
<aop:aspectj-autoproxy />
<!-- the rest of the beans below -->
<bean id="someController" class="..." />
最佳答案
我看到你正在调用方法 handleX
直接来自同一类中的另一个方法。这不会尊重注释,因为处理 AOP 注释的工作是由包装您的类并公开相同接口(interface)的 JDK 代理完成的。
您可以通过使用 CGLIB 而不是 JDK 代理来解决此问题,但根据我的经验,最可靠的解决方案就是不依赖任何 AOP 注释来调用内部调用的方法。
关于spring - aspectj 和 spring 与 aspectj-autoproxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390556/
这是我的代码。 from multiprocessing.managers import BaseManager from threading import Thread def manager1()
我需要将一个对象的代理传递给另一个对象,但每当我这样做时,所有其他对象获取的都是代理的指示对象,而不是代理本身。这与我想做的事情类似: import multiprocessing.managers
为了 mock 一些@Transactional带注释的类,我必须为它们禁用 Springs 的 aop 代理创建。 如何配置我的 Spring Boot 应用程序以完全排除特定 spring bea
我有一个无法更改的根项目,因为它是其他项目的基础项目。它使用 aop:aspectj-autoproxy 元素在 spring 配置中定义 aop 拦截器。 我有另一个项目继承了基础项目,需要使用 a
我有一个使用 Spring AOP 和 AspcetJ 的应用程序,我想转换它以便它可以与 spring 自动代理一起使用。这意味着我需要通过代码库寻找对调用同一类中其他@Transactional
考虑以下服务器代码: from multiprocessing.managers import BaseManager, BaseProxy def baz(aa) : print "aaa"
如果我只是将 添加到我的 spring 上下文的开头,每个实现接口(interface)的 bean 都会获得一个 JDK 代理。我真的很想将代理 A) 限制为实际需要代理的类或 B) 我指定为需要代
我已经使用 @Aspect 注释声明了我的切面,但建议似乎没有得到应用。该方面适用于我拥有的其他一些项目,主要区别似乎是其他项目完全使用注释连接,并且这个特定项目是 xml 连接的。唯一连接注释的 b
我是 Spring 的初学者,我在 applicationContext 中使用 aop:aspectj-autoproxy 时遇到问题。这让我很困惑。有目录图像: directory测试代码非常简单
我正在尝试让我的 Spring MVC 应用程序与 Spring @Secured 注释和 AspectJ 自动代理配合得很好,但它似乎没有代理或识别我的 @Secured 注释。我有一个这样的 Co
我正在编写用于 Firefox 的自定义 .pac 脚本。根据我见过的许多示例,我穿插了 alert()s 以对其进行调试,但没有弹出警报,即使显然正在调用脚本。 (每次更改我的脚本后,我都会在“连接
我正在尝试设置没有任何 XML 的 Spring AOP。我想启用 在一个类中注释为 @Configuration . 这是在 XML 文件中定义的方式: 我尝试用 @Configuration
我是 spring 框架的新手,正在尝试一些示例来理解 AOP,这是我到目前为止所做的,但它不起作用。 问题是我一添加 对于 spring.xml,我的构建失败说无法创建具有空指针异常的 bean。但
我试图拦截任何对 getConnection() 方法的调用来设置 dbms indentifier 。我已经实现了一个方面来获取它,但我什么也没得到。任何想法?谢谢! import java.sql
这是我使用 Spring AOP 的第一个项目。添加时出现问题 在我的 spring-servlet.xml 中。如果我从上下文文件中评论这一行,应用程序运行正常并且没有错误。 如果我添加此行,则会
我有两个关于 spring/AspectJ AOP 的相关问题。我有一个典型的记录器方面,它记录从我的应用程序中的任何类抛出的异常,包括服务、daos、 Controller 和 webflow 操作
假设我正在定义一个自定义方面,并使用 aop:aspectj-autoproxy 启用代理。现在我还在应用程序中导入另一个第三方 spring 上下文,该上下文也恰好调用 aop:aspectj-au
我是一名优秀的程序员,十分优秀!