编程开发 > JSP > 文章内容

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

2017-6-16编辑:daibenhua

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

Spring的配置文件

1

日志拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.vem.interceptor;
  
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; 
import org.aspectj.lang.annotation.Aspect; 
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
  
import 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=0;i
     System.out.println(strings[i]+" : "+arguments[i]+" : ");
     
    
  
}

自定义注解

1
2
3
4
5
6
7
8
9
@Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.METHOD}) 
@Documented 
public @interface BussAnnotation { 
  //模块名 
  String moduleName() default ""
  //操作内容 
  String option() default ""
}

接口实现

写在service

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

junit测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.vem.entity;
  
import javax.annotation.Resource;
  
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  
import com.vem.service.data.DemoService;
import 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教程:JSP的内置对象

热点推荐

登录注册
触屏版电脑版网站地图