Spring MVC项目中log4J和AOP使用详解

作者:日生三金 时间:2022-11-16 08:36:29 

前言

日志处理是每个项目当中一个非常重要的内容。没有了日志,也就失去了对系统的可控性。没有日志,系统出现任何问题,都会没有踪迹可寻,这对一个信息系统而言是非常危险的。

项目中需要将service中的类方法的调用过程,使用log4j日志记录。

service中的类和方法都很多,不可能在每个类中单独添加log4j日志记录的功能,因此我们在这里使用AOP的思想进行横向切面。

以service类中的方法为切入点,通过AOP在方法调用前后使用log4j输出日志,内容包括正在调用的类和方法名。

在配置过程中,笔者碰到了一些或大或小的细节上的问题,在此作为记录。

首先是AOP的配置上,我们有两种选择,一是通过XML配置,二是通过注解。

XML配置可以通过以下示例:

Spring MVC项目中log4J和AOP使用详解

XML配置

则对应的Aspect方法可以不用使用@Aspect、@Before和@After注解。

如果使用注解方式,则在XML配置文件中,只需要一行配置,开启自动代理功能即可:

Spring MVC项目中log4J和AOP使用详解

自动代理

此时,对应的Aspect方法可以如下示例:

Spring MVC项目中log4J和AOP使用详解
Aspect1

其次,是Spring配置文件所属域上的坑,在这里配置的AOP的XML文件,如果需要成功执行,需要在

web.xml文件中,将此XML配置文件加入到Servlet-Context中,而不是Spring-Context中,示例如下:

Spring MVC项目中log4J和AOP使用详解
全局context

上图是配置全局的spring上下文,但是aop配置文件在这里不能成功。

Spring MVC项目中log4J和AOP使用详解
Servlet的context

我们需要把aop的配置加载,放在servlet的初始化上下文中。

最后,我们运行工程,使用该方法,查看AOP结果:

Spring MVC项目中log4J和AOP使用详解
结果

来源:http://www.jianshu.com/p/6812ec44a7a2

标签:springmvc,aop,log4j
0
投稿

猜你喜欢

  • 利用json2POJO with Lombok 插件自动生成java类的操作

    2023-07-12 09:31:28
  • 利用java开发简易版扫雷游戏

    2023-11-07 14:35:15
  • java8使用filter()取出自己所需数据

    2023-04-07 02:30:37
  • Android树形控件绘制方法

    2022-09-05 01:50:55
  • java面试常见模式问题---单例模式

    2022-11-29 09:12:28
  • JavaApi实现更新删除及读取节点

    2023-11-10 07:30:33
  • Winform利用分页控件实现导出PDF文档功能

    2023-08-11 10:15:04
  • C# 利用代理爬虫网页的实现方法

    2023-02-26 18:51:43
  • JavaFx UI控件与代码间的绑定方法

    2021-09-13 00:40:27
  • SpringMVC中MultipartFile上传获取图片的宽度和高度详解

    2023-01-30 20:43:19
  • Mybatis无法获取带有下划线前缀的字段的值问题

    2023-07-20 10:06:33
  • 浅谈HTTP使用BASIC认证的原理及实现方法

    2021-07-18 01:36:16
  • AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列问题及用法

    2021-09-05 14:34:33
  • android实现九宫格程序

    2023-02-16 16:30:53
  • SpringBoot上传临时文件被删除引起报错的解决

    2022-05-28 23:46:24
  • Android异步下载图片并且缓存图片到本地DEMO详解

    2022-10-27 14:16:17
  • Java如何实现List自定义排序

    2021-07-03 06:09:15
  • C#高级静态语言效率利器之泛型详解

    2023-01-24 09:18:02
  • SpringBoot 自定义+动态切换数据源教程

    2021-10-13 21:30:39
  • C++基础概念讲述

    2022-10-31 16:56:05
  • asp之家 软件编程 m.aspxhome.com