监视服务提供者中ServiceImpl中方法的调用
来源:互联网 发布:淘宝靠谱的美妆卖家 编辑:程序博客网 时间:2024/05/21 18:53
监视服务提供者中方法的调用情况,统计方法执行所需要的时间
_**使用到了slf4jFactory提供给的类
-**使用到了aspectj的连接点和环绕通知和切面
_**可以在服务调用者中使用,监视服务对服务提供者的调用情况
1、导入pom文件中导入maven依赖
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.7.4</version> </dependency>
2、新增实体类
package cn.org.demo;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.lang.reflect.Proxy;@Aspectpublic class ServiceMonitor { private static final Logger logger = LoggerFactory.getLogger(ServiceMonitor.class); @Around("execution(* cn.org..*Service.*(..))|| execution(* cn.org..*Interface.*(..))") public Object serviceInfo(ProceedingJoinPoint joinPoint) { Object target = joinPoint.getTarget(); String className = null; String methodName = joinPoint.getSignature().getName(); if ((Proxy.isProxyClass(target.getClass()))) { className = target.toString(); }else { className=target.getClass().getName(); } long begin = System.currentTimeMillis(); try { Object retVal= joinPoint.proceed(); return retVal; } catch (Throwable throwable) { throwable.printStackTrace(); throw new RuntimeException("方法执行异常!",throwable); }finally { long costTime = System.currentTimeMillis() - begin; logger.error("className:{} methodName:{} costtime:{}", className, methodName, costTime); } }}
3、在在contextConfigLocation定义的配置文件中引入对aspectj aop的支持
<aop:aspectj-autoproxy proxy-target-class="true" />
3、在同样的配置文件中定义该对象,使该对象成为一个父容器中的对象,如果定义在子容器SpringMVC配置文件中会出错
<bean id="serviceMonitor" class="该类全路径名" />
阅读全文
0 0
- 监视服务提供者中ServiceImpl中方法的调用
- serviceImpl中,方法加@Override注释后报错
- 服务中监视会话切换
- UIActionSheetDelegate协议中定义的监视方法
- (MSOA)微型面向服务架构中服务管理者和服务提供者的松散关系
- 总结VC程序中调用服务组件COM的方法
- 安卓开发中调用系统服务的方法
- Android中通过接口调用服务里的方法
- Android中服务里面方法的调用,开启,绑定
- 嵌入式系统中进程间通信的监视方法
- 嵌入式系统中进程间通信的监视方法
- 嵌入式系统中进程间通信的监视方法
- 苏伯亚将service中写的这个新方法重载到serviceImpl中
- 对 laravel 中服务提供者(Provider)和 门面(Facades) 的理解
- 服务的两种启动方式及实现调用服务中方法的测试程序
- 类中的静态方法如何调用?-------Bosent中同一类下面的两个服务怎么调用
- Android中内容提供者ContentProvider的使用
- Android中内容提供者ContentProvider的详解
- HDU 6148 数位dp
- 国内第一本micropython的书出版《机器人Python极客编程入门与实战》
- Caused by: java.lang.RuntimeException: Font asset not found fonts/SYFZLTKHJW.TTF
- 【分块】BZOJ 1257 [CQOI2007]余数之和sum题解
- markdown使用帮助
- 监视服务提供者中ServiceImpl中方法的调用
- 新一代大数据处理引擎 Apache Flink
- AC自动机——讲解
- java表格获取选中行的内容,并赋值到另一表格中(赋代码)
- go build 不同系统
- hadoop+spark的安装 配置 新手
- 圆柱贴180度全景图片
- AC自动机完整代码——数组实现,非指针
- SDK目录结构及其作用