您的位置:首页 > 编程语言 > Java开发

SSH(struts+spring+hibernate)迅速开发--第十章 记录日志(1)

2008-01-25 09:08 579 查看
第十章 记录日志

内容:
1. 实现记录日志功能(服务)
2. 将日志服务,注册到Spring容器
3. 基于AOP方面编程思想,利用Spring中的前置通知,在实现用户登陆的时候,自动记录日志

实现记录日志功能
我们有前面用户服务开发和商品服务开发基础后,对日志服务的开发应该很简单了,主要也是定义Log的接口,调用LogDAO实现接口。这里我们就不详细重复了,如下是对应的代码清单:
Logging.java
package cn.com.book.demo.services;

public interface Logging {
/**
* 记录指定信息
* */
public void logging(String str);
}

LoggingImpl.java
/**
*
*/
package cn.com.book.demo.services.impl;

import java.util.Date;

import cn.com.book.demo.hibernate.dao.Log;
import cn.com.book.demo.hibernate.dao.LogDAO;
import cn.com.book.demo.services.Logging;

/**
* @author Noble.Yang
*
*/
public class LoggingImpl implements Logging {
private LogDAO logDAO = null;

public void setLogDAO(LogDAO logDAO) {
this.logDAO = logDAO;
}

/* (non-Javadoc)
* @see cn.com.book.demo.services.Logging#logging(java.lang.String)
* 专门用户记录用户登陆的日志
*/
public void logging(String userName) {
Log log = new Log(userName + " login in", new Date());
this.logDAO.save(log);
}

private void initDAO(){
if(this.logDAO == null){
this.logDAO = new LogDAO();
}
}

}
注册日志服务
代码准备好了,接着同以前的逻辑一样,将日志服务注册到Spring里面去。具体操作同以前的一样:
1. 在applicationContext-service.xml中注册日志服务
<!-- 日志服务 -->
<bean id="loggingService" class="cn.com.book.demo.services.impl.LoggingImpl">
<property name="logDAO">
<ref bean="LogDAO"/>
</property>
</bean>

这样,我们在Spring中就注册了日志服务,id是loggingService
2. 在applicationContext-service.xml中,对注册好的日志服务,添加事务管理
<bean id="loggingServiceProxy" parent="baseServiceProxy">
<property name="target">
<ref bean="loggingService" />
</property>

<property name="transactionAttributes">
<props>
<prop key="log*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
同样,我们注册一个基于Spring的代理事务代理,对日志服务中的log开头的方法,进行方法级别的事务管理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐