diff --git a/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java b/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java index df239984b..3c6fa66cb 100644 --- a/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java +++ b/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java @@ -4,26 +4,27 @@ import java.lang.reflect.Method; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.lang.Console; +import cn.hutool.core.util.StrUtil; /** * 通过日志打印方法的执行时间的切面 * @author Looly * */ -public class TimeIntervalAspect extends SimpleAspect{ - private static final long serialVersionUID = 1L; +public class TimeIntervalAspect extends SimpleAspect { + private static final long serialVersionUID = 1L; - private TimeInterval interval = new TimeInterval(); + private TimeInterval interval = new TimeInterval(); - @Override - public boolean before(Object target, Method method, Object[] args) { - interval.start(); - return true; - } - - @Override - public boolean after(Object target, Method method, Object[] args, Object returnVal) { - Console.log("Method [{}.{}] execute spend [{}]ms", target.getClass().getName(), method.getName(), interval.intervalMs()); - return true; - } + @Override + public boolean before(Object target, Method method, Object[] args) { + interval.start(); + return true; + } + + @Override + public boolean after(Object target, Method method, Object[] args, Object returnVal) { + Console.log("Method [{}.{}] execute spend [{}]ms return value [{}]", target.getClass().getName(), method.getName(), interval.intervalMs(), StrUtil.toString(returnVal)); + return true; + } } diff --git a/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java b/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java index 31f12325a..6ca1b9800 100644 --- a/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java +++ b/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java @@ -14,47 +14,60 @@ import cn.hutool.aop.aspects.TimeIntervalAspect; */ public class AopTest { - @Test - public void aopTest() { - Animal cat = ProxyUtil.proxy(new Cat(), TimeIntervalAspect.class); - String result = cat.eat(); - Assert.assertEquals("猫吃鱼", result); - } + @Test + public void aopTest() { + Animal cat = ProxyUtil.proxy(new Cat(), TimeIntervalAspect.class); + String result = cat.eat(); + Assert.assertEquals("猫吃鱼", result); + cat.seize(); + } - @Test - public void aopByCglibTest() { - Dog dog = ProxyUtil.proxy(new Dog(), TimeIntervalAspect.class); - String result = dog.eat(); - Assert.assertEquals("狗吃肉", result); - } + @Test + public void aopByCglibTest() { + Dog dog = ProxyUtil.proxy(new Dog(), TimeIntervalAspect.class); + String result = dog.eat(); + Assert.assertEquals("狗吃肉", result); + dog.seize(); + } - static interface Animal { - String eat(); - } + interface Animal { + String eat(); - /** - * 有接口 - * - * @author looly - * - */ - static class Cat implements Animal { + void seize(); + } - @Override - public String eat() { - return "猫吃鱼"; - } - } + /** + * 有接口 + * + * @author looly + * + */ + static class Cat implements Animal { - /** - * 无接口 - * - * @author looly - * - */ - static class Dog { - public String eat() { - return "狗吃肉"; - } - } + @Override + public String eat() { + return "猫吃鱼"; + } + + @Override + public void seize() { + System.out.println("抓了条鱼"); + } + } + + /** + * 无接口 + * + * @author looly + * + */ + static class Dog { + public String eat() { + return "狗吃肉"; + } + + public void seize() { + System.out.println("抓了只鸡"); + } + } }