SSH(struts+spring+hibernate)迅速開發--第十章 記錄日誌(1)

第十章 記錄日誌

 

內容:

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中就註冊了日誌服務,idloggingService

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開頭的方法,進行方法級別的事務管理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章