AOP(面向切面编程)(二) 使用注解添加日志

java在jdk1.5中引入了注解一种原程序中的元素关联任何信息和任何元数据的途径和方法这就是注解。使用注解可以极大的简化我们的编程,便于代码维护。

首先自定义一个注解

@Target(ElementType.METHOD)//这个注解可以用在方法上面
@Retention(RetentionPolicy.RUNTIME)//注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在
@Documented//表示该注解可生成文档
@Inherited//表示该注解可继承
public @interface LoggerAop {
	
	public String value() default "";
}

写一个切面类,用于自定义日志

@Aspect//表示该类为一个切面类
@Component//@component组件扫描,让其 logService能注入进来
public class LoggerAspect {
	
	 private Logger logger = LoggerFactory.getLogger(LoggerAspect.class);
	 //切入的注解
	 @Around("@annotation(com.way.aop.LoggerAop)")
	 public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable{
	     Long start = System.currentTimeMillis();
	     Object obj = pjp.proceed();
	     logger.info(pjp.getTarget().getClass().getSimpleName()+"."+pjp.getSignature().getName()+" 花费时间 "+(System.currentTimeMillis()-start)+",运行结果 "+obj);
	     return obj;
	      
	 }
}

使用入门实例的方法,在需要添加日志的地方加上注解

@LoggerAop
public double cos(double angle) {
	return (new BigDecimal(Math.cos(angleToRandian(angle))).setScale(6, BigDecimal.ROUND_HALF_DOWN)).doubleValue();
}

测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class Test1 {

	@Autowired
	TrigonometricFunctionCal trigonometricFunctionCal;
	
	@Test
	public void MyTest() throws IOException, InterruptedException{
		System.out.println(trigonometricFunctionCal.cos(60));;
	}
}

运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值