Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
CallMonitoringAspect.java
Package: petclinic.rar [view]
Upload User: dezhong
Upload Date: 2022-08-10
Package Size: 167k
Code Size: 2k
Category:
Java Develop
Development Platform:
Java
- package org.springframework.samples.petclinic.aspects;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.annotation.Around;
- import org.aspectj.lang.annotation.Aspect;
- import org.springframework.jmx.export.annotation.ManagedAttribute;
- import org.springframework.jmx.export.annotation.ManagedOperation;
- import org.springframework.jmx.export.annotation.ManagedResource;
- import org.springframework.util.StopWatch;
- /**
- * Simple AspectJ aspect that monitors call count and call invocation time.
- * Implements the CallMonitor management interface.
- *
- * @author Rob Harrop
- * @author Juergen Hoeller
- * @since 2.5
- */
- @ManagedResource("petclinic:type=CallMonitor")
- @Aspect
- public class CallMonitoringAspect {
- private boolean isEnabled = true;
- private int callCount = 0;
- private long accumulatedCallTime = 0;
- @ManagedAttribute
- public void setEnabled(boolean enabled) {
- isEnabled = enabled;
- }
- @ManagedAttribute
- public boolean isEnabled() {
- return isEnabled;
- }
- @ManagedOperation
- public void reset() {
- this.callCount = 0;
- this.accumulatedCallTime = 0;
- }
- @ManagedAttribute
- public int getCallCount() {
- return callCount;
- }
- @ManagedAttribute
- public long getCallTime() {
- return (this.callCount > 0 ? this.accumulatedCallTime / this.callCount : 0);
- }
- @Around("within(@org.springframework.stereotype.Service *)")
- public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable {
- if (this.isEnabled) {
- StopWatch sw = new StopWatch(joinPoint.toShortString());
- sw.start("invoke");
- try {
- return joinPoint.proceed();
- }
- finally {
- sw.stop();
- synchronized (this) {
- this.callCount++;
- this.accumulatedCallTime += sw.getTotalTimeMillis();
- }
- }
- }
- else {
- return joinPoint.proceed();
- }
- }
- }