- 浏览: 665630 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (173)
- ajax (4)
- ant (4)
- css (14)
- eclipse (1)
- exe4j (0)
- hibernate (7)
- html (29)
- http (2)
- install4j (0)
- java (35)
- javascript (31)
- jdbc (1)
- jquery (2)
- jsp (15)
- linux命令 (8)
- ooad (2)
- properties (3)
- servlet (1)
- spring (3)
- struts (6)
- swing (4)
- thread (2)
- version_control (1)
- webservice (4)
- xml (4)
- 数据库 (19)
- 正则表达式 (5)
- 其他 (16)
- 面试题 (1)
- 框架 (9)
- maven (1)
- util (29)
- 设计模式 (1)
最新评论
-
herodie4444:
看起来好像不难。
Java Struts2创建Excel文件并实现文件下载 -
心轨翼:
Java遍历Set集合方法 -
魔鬼的献祭:
...
java的web开发分页工具类 -
Nmxszxsl:
能发一个没有被墙的代码到我的邮箱吗?万分感谢。54365156 ...
Google翻译post提交无长度限制的在线翻译例子 -
782763595:
...
jar包混淆器介绍
最近项目中要做个效能监控的功能,经过考虑,觉得选择spring的AOP来实现。必须放在Web端。
例子如下:
需要导入两个AspectJ库:aspectjweaver.jar和aspectj.jar。
JavaBean类
在applicationContext.xml文件里加入如下代码:
如果项目中使用了spring的自动装配(@Autowired)功能,还行在struts.xml文件中加入下面一行,意思是始终使用自动装配功能:
<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true" />
例子如下:
import java.util.Date; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.beans.factory.annotation.Autowired; import com.csair.amp.web.webinf.common.model.LoginInfo; import com.csair.smms.effmonitor.dto.MonitorLog; import com.csair.smms.effmonitor.service.MonitorService; import com.opensymphony.xwork2.ActionContext; /** * 效能监控日志类 * * @author ahomeeye * * 2012-7-11 下午2:32:34 */ @Aspect public class EfficiencyMonitor { @Autowired private MonitorService monitorService;//保存日志信息的业务实现 // 登录日志,代表监控com.csair.amp.web.webinf.common.LoginAction类的login方法,可用通配符* @After("execution(* com.csair.amp.web.webinf.common.LoginAction.login())") public void loginLog() { //从session中获取用户信息 LoginInfo u = (LoginInfo) ActionContext.getContext().getSession() .get("user"); MonitorLog m = new MonitorLog(); m.setUsername(u.getUsername()); m.setLogtime(new Date()); m.setFunction(MonitorConstants.LOGIN); m.setClassName("com.csair.amp.web.webinf.common.LoginAction"); m.setMethodName("login"); monitorService.insertMonitorLog(m);//保存日志信息 System.out.println("-------用户登录--username=" + u.getUsername()); } }
需要导入两个AspectJ库:aspectjweaver.jar和aspectj.jar。
JavaBean类
public class MonitorLog implements Serializable { private static final long serialVersionUID = 7707875472196483005L; private int id;// 编号 private String username;// 用户名 private Date logtime;// 使用时间 private String function;// 使用功能 private String className;// 类名 private String methodName;// 方法名 //省略setter和getter方法 }
在applicationContext.xml文件里加入如下代码:
<!-- 指定自动搜索Bean组件、自动搜索切面类,前一个代表搜索Bean的包,后一个代表搜索切面类的包--> <context:component-scan base-package="com.csair.amp.web.webinf,com.csair.amp.web.webinf.effmonitor"> <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/> </context:component-scan> <!-- 启动@AspectJ支持 --> <!--<aop:aspectj-autoproxy/> 此标记与下面一行等效--> <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"/>
如果项目中使用了spring的自动装配(@Autowired)功能,还行在struts.xml文件中加入下面一行,意思是始终使用自动装配功能:
<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true" />
- lib.zip (1.6 MB)
- 下载次数: 62
发表评论
-
java读取.properties配置文件的几种方法
2017-09-22 09:38 677读取.properties配置文件在实际的开发中使用的很多,总 ... -
java前后台字符串编码转换
2016-12-15 15:52 807此文为应用中遇到字符串编码转换问题网上找资料解决问题记录笔记, ... -
JavaScript replace字符串替换函数的用法
2016-10-19 15:21 879replace 语法 stringObj.replace(rg ... -
JS前端DES加密参数
2016-07-08 14:27 11738DES加密为可解密的机制,这里使用DES进行加密方便后台解密还 ... -
XSS跨站漏洞修复
2016-07-08 11:47 4927避免XSS跨站漏洞的方法之一主要是将用户所提交的内容输入输出进 ... -
JS Date函数整理
2015-01-30 10:43 1074JS Date 对象用于处理日期和时间。 创建 Date 对象 ... -
Java Struts2创建Excel文件并实现文件下载
2015-01-16 17:42 1896在做管理系统的时候,经常会用到文件的下载,特别是Excel报表 ... -
js中setInterval与setTimeout用法
2014-11-19 17:09 1034下面详述js中的延时任务与周期任务的实现。 1.setTim ... -
hibernate注解配置联合主键
2014-07-17 09:35 1576有时一个实体的主键可能同时为多个,例如下面使用的字典“Dict ... -
hibernate的clob数据处理
2014-05-21 17:11 1126hibernate的clob数据处理: import or ... -
java设计模式笔记链接地址汇总
2012-12-25 12:02 1088这是iteye博客用户的iulve-rover-163-com ... -
java枚举类型(转)
2012-12-24 18:34 4977public class TestEnum { ... -
内存溢出
2012-11-21 11:07 11241.PermGen space的全称是Permanent Ge ... -
转 js中数据类型判断(转)
2012-11-05 11:07 1144转载自: http://www.cnblogs.com/yjh ... -
日期比较例子
2012-10-16 15:30 1220/** * 时间日期比较处理例子 * @autho ... -
包含日期和时间的选择器(转)
2012-09-27 16:11 1101转载自: http://www.cnblogs.com/swe ... -
基于hibernate的数据持久化处理简单实现类
2012-09-26 20:03 1796package com.forveross.plane.s ... -
Struts2的简单示例action类
2012-09-26 19:57 4693基类: package com.kit.common; ... -
jsp通用分页实现脚本
2012-09-26 17:12 1708工具脚本使用时只需替换url的问号前半部分即可。 此页面需要j ... -
Java过滤html标签
2012-09-21 09:54 1816方法一: String oldStr="< ...
相关推荐
综上所述,本项目结合了Spring MVC、MyBatis Plus和AOP,构建了一个具备日志记录和存储功能的系统,为开发团队提供了一种有效的监控和分析手段,有助于提升应用的稳定性和可维护性。由于提供了数据库支持,开发者...
本节将详细介绍如何使用Spring AOP实现流程日志跟踪,主要关注于如何通过AOP拦截特定的类和方法来进行日志记录。 ##### 3.1 配置Spring AOP 在Spring配置文件中定义切面和切入点表达式是非常关键的一步。一般来说...
综上所述,这个主题涵盖了从用户交互的文件上传和下载功能,到服务器端的断点续传实现,再到使用AOP进行操作日志记录的整个流程。理解并掌握这些知识点对于开发高效、健壮的Web应用程序至关重要。
通过以上步骤,我们就完成了使用Spring AOP拦截并记录系统操作日志和异常日志的过程。在实际项目中,可以根据需求调整切点表达式,优化日志格式,以及对日志进行分类和分级存储。这样的设计使得日志管理变得灵活且...
通过这种方式,我们可以实现在不修改源代码的情况下,添加切面逻辑,如日志记录、性能监控等。 在C#中使用`Mono.Cecil`实现AOP,主要分为以下几个步骤: 1. **加载程序集**:首先,我们需要使用`Assembly...
Spring框架中的Spring AOP是实现AOP的一种方式,它允许我们在不修改源代码的情况下,插入额外的功能,如日志、事务管理、性能监控等。在这个特定的场景中,我们将使用Spring AOP来实现共享单车的按小时计费功能。 ...
在Spring框架中,AOP(面向切面编程)是一种强大的工具,用于实现关注点的分离,使得我们可以将系统中的核心业务逻辑与横切关注点,如日志、事务管理、安全控制、审计等,解耦合。在这个场景中,我们讨论的是如何...
而Spring AOP则广泛应用于企业级应用,提供统一的事务管理、日志记录、性能监控等功能,降低了系统的复杂性,提高了代码的可维护性。 了解了基本概念后,我们可以编写一个简单的AOP测试示例。假设有一个`...
- **使用AOP(面向切面编程)**:通过如Unity或Autofac等依赖注入容器,结合AOP特性,可以在不修改业务代码的情况下插入日志记录代码。 4. **日志记录的内容** - **请求信息**:包括HTTP方法(GET、POST等)、URL...
在审计日志切面中,我们可以使用Spring Data JPA或者MyBatis等持久层框架,将日志信息转化为实体并保存到数据库。 4. **shenjirizhi文件**: "shenjirizhi"可能是项目中特定模块的命名,或者源码包的别名。由于...
AOP是一种编程范式,它允许程序员定义“切面”,这些切面封装了系统中的横切关注点,如日志、事务管理、性能监控等。传统的面向对象编程中,这些关注点通常会分散在各个类的方法中,导致代码重复且难以维护。AOP通过...
要实现AfterReturning通知,我们可以使用`@AfterReturning`注解,这是一个Spring AOP的注解驱动方式。 `@AfterReturning`注解有以下几个关键属性: 1. `value`:用于指定切入点表达式,确定哪些方法执行后会触发这...
它的实现依赖于多种技术,如客户端监控日志上报、监控报警系统、多维度监控、独立进程上传以及采集策略配置等。 其中,客户端监控日志上报可以收集应用运行中的关键信息,监控报警系统则能即时通知开发团队异常情况...
在JavaScript中,AOP常用于管理代码的副作用,如日志记录、异常处理、性能监控等。在这个场景中,AOP被用来简化Ajax回调函数的使用。 Ajax是异步JavaScript和XML的缩写,用于在后台与服务器进行数据交互,而无需...
在C++中,传统的编程方式往往难以有效地处理非功能性需求,如日志记录、异常处理、性能监控等,这些被称为横切关注点。AOP则提供了一种将这些关注点与主要业务逻辑解耦的方法。它引入了切面(Aspect)的概念,切面...
### Spring Boot多数据源配置(方式三:基于AOP切面动态切换需要使用哪个数据源) #### 一、多数据源介绍与应用场景 在实际的软件开发过程中,特别是在微服务架构下,一个应用可能需要同时操作多个不同的数据库,...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组件,它允许我们以一种模块化的方式处理横切关注点,如日志、事务管理、性能监控等。这些关注点通常与业务逻辑代码交织在一起,...
Oriented Programming,简称AOP)是一种编程范式,它的核心思想是将系统中分散的、与业务逻辑无关的功能(横切关注点,如日志、安全、事务等)从业务逻辑中分离出来,使得开发者能够将这些功能模块化并分别处理,...