- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 spring xml 文件的一部分:
<!-- aop config -->
<aop:aspectj-autoproxy />
<bean id="fileService" class="com.test.file.FileService" />
<bean id="throughputManager" class="com.test.mbean.ThroughputManager" />
接着是java代码:
public class FileService {
public long read(Object obj,String id) throws Exception {
return 0L;
}
public long write(Object obj,String id) throws Exception {
return 0L;
}
}
@Aspect
public class ThroughputManager {
public static long TOTAL_READ_THROUGHPUT;
public static long TOTAL_WRITE_THROUGHPUT;
@AfterReturning(
pointcut="execution(* com.test.file.FileService.read(..))",
returning="size"
)
public void calculateReadThroughput(long size) throws IOException{
TOTAL_READ_THROUGHPUT+=size;
}
@AfterReturning(
pointcut="execution(* com.test.file.FileService.write(..))",
returning="size"
)
public void calculateWriteThroughput(long size) throws IOException{
TOTAL_WRITE_THROUGHPUT+=size;
}
}
当我调试程序并调用read
和write
方法时,ThroughputManager
中的两个方法没有被调用。我试图找到原因,但似乎有关代码的一切都很好。任何人都可以帮助找出这个 aop 调用有什么问题吗?谢谢。
最佳答案
我终于明白了。虽然我注册了FileService
作为 spring 配置 xml 中的 bean,我没有调用 read
和 write
通过 FileService
的方法bean——来自 getBeans
的实例方法。相反,我只是 new
一个FileService
实例和调用这两个方法。真是个错误...
关于java - @AfterReturning 拦截aspectJ调用的方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22374341/
@AfterReturning(pointcut)和@AfterReturning(value)有什么区别 @AfterReturning(pointcut = "execution(* my.jav
这个问题已经有答案了: Why does self-invocation not work for Spring proxies (e.g. with AOP)? (1 个回答) 已关闭2 年前。 我
这是 spring xml 文件的一部分: 接着是java代码: public class FileService { public long read(Object obj,Stri
我需要在执行函数后执行任务。我为此使用了 Aspect。但我有些困惑。 我在 Spring 服务中有一个函数 A()。 @Transactional(readOnly = false,
我有个小问题。我在某些函数返回后调用 AfterReturning 函数,而我的 AfterReturning 函数工作了两次,我不希望这样。这是代码: @Aspect @Component @Con
我有这个方法,它确实返回一个列表: public List getMissingReports(List expectedReports,
我有一个可以更新字段的方法,但我想在执行该方法之前检查该值,以便我可以确定操作(编辑/添加/删除)。 @Before(value = "execution(* com.test.app.*.servi
Spring配置文件
我正在学习 AOP spring 并尝试一些示例。关于@AfterReturning,我的理解是只有当目标成功返回并且匹配切入点时才会调用该方法。然而,在我的例子中,如下所示,我有一个切入点,它定义了
我已经使用 Spring AOP 为每个保存操作设置了日志记录,其中我用 @Transactional 进行了标记。问题是当我的 save 方法抛出异常并仅使用回滚标记事务时,但使用 AOP 的日志记
在 Web 应用程序中,我使用 Spring AOP 检查来电时对我的服务的授权,并在返回结果时管理消息(信息、警告、错误)。使用一个方面可以节省我的代码行并概括我的服务行为(而且它看起来很性感 ^^
我有以下内容: @AfterReturning("executionOfTrustedAnnotatedMethod()") public void afterReturningFromTrusted
我是一名优秀的程序员,十分优秀!