热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring配置aop后,struts2的请求全部失效了,请问这是什么原因?

spring配置

spring配置



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   

     

   

   

   

   

   

       

       

       

           

           

           

       


   


   

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*

 * 描述:

 * 修改人:17109

 * 修改时间:2018年3月13日

 */



package com.otw.common.aspect;





import java.lang.reflect.Method;

import java.util.Date;



import javax.servlet.http.HttpServletRequest;



import org.apache.shiro.SecurityUtils;

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.beans.factory.annotation.Autowired;



import com.google.gson.Gson;

import com.otw.common.annotation.SysLogAnnotation;

import com.otw.utils.HttpContextUtils;

import com.otw.utils.IPUtils;

import com.otw.web.pojo.SysLog;

import com.otw.web.pojo.SysLogin;

import com.otw.web.service.SysLogService;





@Aspect

public class SysLogAspect

{

    @Autowired

    private SysLogService sysLogService;



    @Pointcut("@annotation(com.otw.common.annotation.SysLogAnnotation)")

    public void logPointCut()

    {



    }



    @Around("logPointCut()")

    public Object around(ProceedingJoinPoint point)

        throws Throwable

    {

        long beginTime = System.currentTimeMillis();

        // 执行方法

        Object result = point.proceed();

        // 执行时长(毫秒)

        long time = System.currentTimeMillis() - beginTime;



        // 保存日志

        saveSysLog(point, time);



        return result;

    }



    private void saveSysLog(ProceedingJoinPoint joinPoint, long time)

    {

        MethodSignature signature = (MethodSignature)joinPoint.getSignature();

        Method method = signature.getMethod();



        SysLog sysLog = new SysLog();

        SysLogAnnotation sysLogAnnotation = method.getAnnotation(SysLogAnnotation.class);

        if (sysLogAnnotation != null)

        {

            // 注解上的描述

            sysLog.setOperation(sysLogAnnotation.value());

        }



        // 请求的方法名

        String className = joinPoint.getTarget().getClass().getName();

        String methodName = signature.getName();

        sysLog.setMethod(className + "." + methodName + "()");



        // 请求的参数

        Object[] args = joinPoint.getArgs();

        try

        {

            String params = new Gson().toJson(args[0]);

            sysLog.setParams(params);

        }

        catch (Exception e)

        {



        }



        // 获取request

        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();

        // 设置IP地址

        sysLog.setIp(IPUtils.getIpAddr(request));



        // 用户名

        String username = ((SysLogin)SecurityUtils.getSubject().getPrincipal()).getName();

        sysLog.setUsername(username);



        sysLog.setTime(time);

        sysLog.setCreateDate(new Date());

        // 保存系统日志

        sysLogService.insert(sysLog);

    }

}

1
2
3
4
5
6
7
8
9
10
11
12
13
/**

 * 系统日志注解

 *

 * @author linyuting

 * @since 2018-3-13

 */

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface SysLogAnnotation {



    String value() default "";

}



   



推荐阅读
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
author-avatar
爱在西元前2502938591
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有