本文作者:佚名

JSP 自定义注解及记录操作日志

佚名 2019-04-25 ???
摘要:JSP 自定义注解及记录操作日志Spring的配置文件<aop:aspectj-autoproxy />日志拦截器package com.vem.interceptorimport org


JSP 自定义注解及记录操作日志

Spring的配置文件

<aop:aspectj-autoproxy />

日志拦截器

package com.vem.interceptorimport org.aspectj.lang.ProceedingJoinPointimport org.aspectj.lang.annotation.Around import org.aspectj.lang.annotation.Aspect import org.aspectj.lang.annotation.Pointcutimport org.aspectj.lang.reflect.MethodSignatureimport org.springframework.stereotype.Componentimport com.vem.entity.BussAnnotation @Aspect @Component public class LogInterceptor {     @Pointcut("execution(* com.vem.service..*.*(..))")   public void aApplogic() {      }         @Around(value = "aApplogic() && @annotation(annotation) &&args(object,..) ", argNames = "annotation,object")   public void interceptorApplogic(ProceedingJoinPoint joinPoint,       BussAnnotation annotation, Object object) throws Throwable {     System.out.println("模块名称moduleName:" + annotation.moduleName())     System.out.println("操作名称option:" + annotation.option())     String methodName = joinPoint.getSignature().getName() System.out.println("方法名methodName:" + methodName)         MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature()     String[] strings = methodSignature.getParameterNames()         joinPoint.proceed()         Object[] arguments = joinPoint.getArgs()  //获得参数列表    if(arguments.length<=0){       System.out.println(methodName+"方法没有参数")     }else{      for(int i=0i<arguments.lengthi++){      System.out.println(strings[i]+" : "+arguments[i]+" : ")     }     }   } } 

自定义注解

@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) @documented public @interface BussAnnotation {   //模块名   String moduleName() default ""   //操作内容   String option() default "" } 

接口实现

写在service

@BussAnnotation(moduleName="人员管理",option="添加用户") public void testDemo1(PageData pd) throws Exception{ }

junit测试类

package com.vem.entityimport javax.annotation.Resourceimport org.junit.Test import org.junit.runner.RunWith import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.junit4.SpringJUnit4ClassRunnerimport com.vem.service.data.DemoServiceimport com.vem.util.PageData  @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration( {"classpath:spring/ApplicationContext.xml" })public class AopTest {   @Resource(name = "demoService") public DemoService demoService    @Test   public void testAopAddUser1(){    PageData pd = new PageData()   pd.put("name", "zhangzexing")   pd.put("age", "21")   pd.put("passward", "123456")   try {  demoService.testDemo2(pd) } catch (Exception e) {  // TODO Auto-generated catch block  e.printStackTrace() }  } }  

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

未经允许不得转载:

作者:佚名,标题:JSP 自定义注解及记录操作日志,原文地址:https://www.vfjianzhan.com/java/201904/2842.html发布于2019-04-25
转载或复制请以超链接形式并注明出处唯福建站

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏