【发布时间】:2016-05-13 19:02:06
【问题描述】:
在我的宠物项目中,我有一个长期运行的工作,我想向用户显示有关该过程的状态以及它走了多远。因此,我将状态对象从那里推送到 JMS 主题,然后将它们提供给 WS 应用程序以将它们流式传输到有效的客户端。 我在 spring AOP(即@Before,@AfterReturn)中编写了切入点,并调用我的服务将消息发送到主题。现在我想记录服务的状态,而不是在方法启动或在方法内部返回之后。所以我调用了服务(其中注入了 jmsTamplete 并获取了状态对象)。有什么办法可以最小化这些调用,这样我就不能重复服务调用。 这是我的 sudo 代码。
public class Myservice{
UserDao userDao;
LegService legservice;
ProviderDao providerDao;
....
StatusServive statusServie;
//aop will call the same service to send info to JMS topic
fetchandCalculateLeg(){
// here i called statusServie.senStatus(StatusObject);
List<Users> = userDao.fetchUserInfo();
// here i called statusServie.senStatus(StatusObject);
....
loop: #forEachUser
// here i called statusServie.senStatus(StatusObject);
someList = legservice.fecthLegInfoForEachUser();
// here i called statusServie.senStatus(StatusObject);
:endloop;
....
} }
目前我有 3 个长时间运行的任务,我在每个方法类中都调用相同的。我想尽量减少通话。
编辑1: 我也可以在调用方法上应用 AOP,但是这种情况下的性能如何?如何测量 AOP 性能(在应用程序启动或创建代理对象期间消耗了多少内存)。抱歉问了这么多问题。
【问题讨论】:
-
您的问题标题似乎没有反映在您的问题中。
标签: java spring-aop