您正在使用 IPV4 [44.222.131.239] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折      
[公益] 地球是我家,绿化靠大家      
2024年 中秋节 000
2025年 高 考 263
2025年 元 旦 106
2025年 春 节 134
 
您现在的位置:首页 >> JSP >> 内容
本类新增
本类热门
JSP 自定义注解及记录操作日志
内容摘要: JSP自定义注解及记录操作日志Spring的配置文件aop:aspectj-autoproxy/日志拦截器packagecom.vem.interceptor;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.Around;importorg.aspect......
JSP自定义注解及记录操作日志

Spring的配置文件

<aop:aspectj-autoproxy/>

日志拦截器

packagecom.vem.interceptor;

importorg.aspectj.lang.ProceedingJoinPoint;

importorg.aspectj.lang.annotation.Around;

importorg.aspectj.lang.annotation.Aspect;

importorg.aspectj.lang.annotation.Pointcut;

importorg.aspectj.lang.reflect.MethodSignature;

importorg.springframework.stereotype.Component;

importcom.vem.entity.BussAnnotation;

@Aspect

@Component

publicclassLogInterceptor{

@Pointcut("execution(*com.vem.service..*.*(..))")

publicvoidaApplogic(){

}

/**

*环绕通知用于拦截指定内容,记录用户的操作

*/

@Around(value="aApplogic()&&@annotation(annotation)&&args(object,..)",argNames="annotation,object")

publicvoidinterceptorApplogic(ProceedingJoinPointjoinPoint,

BussAnnotationannotation,Objectobject)throwsThrowable{

System.out.println("模块名称moduleName:"+annotation.moduleName());

System.out.println("操作名称option:"+annotation.option());

StringmethodName=joinPoint.getSignature().getName();

System.out.println("方法名methodName:"+methodName);

MethodSignaturemethodSignature=(MethodSignature)joinPoint.getSignature();

String[]strings=methodSignature.getParameterNames();

joinPoint.proceed();

Object[]arguments=joinPoint.getArgs();//获得参数列表

if(arguments.length<=0){

System.out.println(methodName+"方法没有参数");

}else{

for(inti=0;i<arguments.length;i++){

System.out.println(strings[i]+":"+arguments[i]+":");

}

}

}

}

自定义注解

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD})

@Documented

public@interfaceBussAnnotation{

//模块名

StringmoduleName()default"";

//操作内容

Stringoption()default"";

}

接口实现

写在service

@BussAnnotation(moduleName="人员管理",option="添加用户")

publicvoidtestDemo1(PageDatapd)throwsException{

}

junit测试类

packagecom.vem.entity;

importjavax.annotation.Resource;

importorg.junit.Test;

importorg.junit.runner.RunWith;

importorg.springframework.test.context.ContextConfiguration;

importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;

importcom.vem.service.data.DemoService;

importcom.vem.util.PageData;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(

{"classpath:spring/ApplicationContext.xml"

})

publicclassAopTest{

@Resource(name="demoService")

publicDemoServicedemoService;

@Test

publicvoidtestAopAddUser1(){

PageDatapd=newPageData();

pd.put("name","zhangzexing");

pd.put("age","21");

pd.put("passward","123456");

try{

demoService.testDemo2(pd);

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:jsp页面数据分页模仿百度分页效果

 

下一篇:JSP实现浏览器关闭cookies情况下的会话管理

发布日期:2024/2/20
手机扫二维码直达本页
发布时间:14:52:16
点  击:9
录  入:星儿
相关文章
Baidu
YiJiaCMS 7.5.3 build240901(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....