开发中我们会需要对某些方法做日志记录。
一种最简单的方法是,先创建一个Logger对象。
public class Logger {
public static void info(String info){
System.out.println(new Date()+"---> "+info);
}
}
任何需要做日志的方法,比如UserDao的add()方法,
public void add(User user) {
Logger.info("user:"+user.getUsername() +"is added");
this.getSession().save(user);
}
这样是可行的, 但是这样会加入大量的日志代码在我们的底层代码中。
Spring提供了AOP(Aspect Oriented Programming),也就是面向切面编程。
这个方法类似于动态代理,可以在运行期对代理的方法进行操作。
这里说一说怎么用Spring的AOP来添加日志。
首先创建一个UserProxyDao,实现IUserDao接口:
@Component("userProxyDao")
public class UserProxyDao implements IUserDao {
@Inject
private IUserDao userDao;
@Override
public void add(User user) {
Logger.info("添加了用户: "+user.getUsername());
userDao.add(user);
}
@Override
public void update(User user) {
Logger.info("更新了用户: "+user.getUsername());
userDao.update(user);
}
@Override
public void delete(int id) {
Logger.info("删除了用户: "+id);
userDao.delete(id);
}
此时在UserService中使用这个代理对象来进行dao操作。
@Service("userService")
public class UserService implements IUserService {
@Resource(name="userProxyDao")
private IUserDao userDao;
}
这样便完成了静态代理的日志添加。
分享到:
相关推荐
spring一篇入门博文的配套资源,包含了第一个spring程序、IOC控制反转、DI依赖注入、静态代理、动态代理、AOP面向切面编程等源代码
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
掌握系统框架设计原理,工厂模式,委托模式的实现,Spring的IOC依赖注入技术,Struts2,Hibernate与Spring的整合,ApplicationContext读取资源文件的3种方法,多个配置文件的加载与导入,静态代理与动态代理,...
12.5.4.代理一个类 12.6.使用ProxyFactory类以编程方式创建AOP代理 12.7.管理目标对象 12.8.使用“自动代理”功能 12.8.1.自动代理对象的定义 12.8.1.1.ObjectNameAutoProxyCreator 12.8.1.2....
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...
第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...
第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...
第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
2009-02-24 08:36 171617 47585 常见的专业问题解决办法\Spring框架与AOP思想的研究与应用.mht 2009-02-24 08:37 190012 61182 常见的专业问题解决办法\Spring框架快速入门之简介.mht 2009-01-16 08:16 281434 ...