亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Appfuse:記錄操作日志

2019-11-15 00:52:57
字體:
來源:轉載
供稿:網友
Appfuse:記錄操作日志

appfuse的數據維護操作都發生在***form頁面,與之對應的是***FormController,在Controller中處理數據的操作是onSubmit方法,既然所有的操作都通過onSubmit,那么只需要攔截onSubmit并記錄對應的參數即可作為操作日志。

首先要攔截Controller層的方法就需要在dispatcher-servlet.xml中配置攔截器,如下:

<aop:config>        <aop:advisor id="submitTx" advice-ref="txSubmitAdvice"            pointcut="execution(* *..controller.*Controller.onSubmit(..))" order="0" />    </aop:config>    <bean id="txSubmitAdvice" class="com.zcmp.xunji.service.SubmitAdvice"/>
dispatcher-servlet.xml

接下來在Service中定義自己的AOP攔截器

package com.disappearwind.service;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.sPRingframework.aop.AfterReturningAdvice;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.security.core.Authentication;import org.springframework.security.core.context.SecurityContext;import org.springframework.security.core.context.SecurityContextHolder;import org.springframework.security.core.userdetails.UserDetails;import com.disappearwind.model.BaSEObject;import com.disappearwind.model.Role;import com.disappearwind.model.Syslog;import com.disappearwind.model.User;import java.lang.reflect.Method;import java.util.Date;import java.util.Set;import javax.servlet.http.HttpServletRequest;/** * 對Controller中的onSubmit方法監聽,記錄用戶的操作日志 *  * @author mraible */public class SubmitAdvice implements AfterReturningAdvice, MethodInterceptor {    private final Log log = LogFactory.getLog(SubmitAdvice.class);    private UserManager userManager = null;    private GenericManager<Syslog, Long> syslogManager;    @Autowired    public void setSyslogManager(            @Qualifier("syslogManager") GenericManager<Syslog, Long> syslogManager) {        this.syslogManager = syslogManager;    }    @Autowired    public void setUserManager(UserManager userManager) {        this.userManager = userManager;    }    /**     * 在用戶的業務操作執行完之后記錄操作日志     *      * @param returnValue     *            the user object     * @param method     *            the name of the method executed     * @param args     *            the arguments to the method     * @param target     *            the target class     * @throws Throwable     *             thrown when args[0] is null or not a Base object     */    public void afterReturning(Object returnValue, Method method,            Object[] args, Object target) throws Throwable {        // 方法簽名:String onSubmit(APPToken appToken, BindingResult errors,        // HttpServletRequest request,HttpServletResponse response)        try {            if (args[0] instanceof BaseObject) {                BaseObject obj = (BaseObject) args[0];                HttpServletRequest request = (HttpServletRequest) args[2];                // 發生在哪個Model                String modelName = obj.getClass().getSimpleName();                // Model中的數據                String modelData = obj.toString();                // 操作類型,request參數中sava就是Save,request參數中有delete則是Delete                String action = "Save";                if (null != request.getParameter("delete")) {                    action = "Delete";                }                // 記錄操作日志到數據庫                Syslog syslog = new Syslog();                syslog.setModule(modelName + "." + action);                syslog.setContent(modelData);                syslog.setCreateDate(new Date());                syslog.setCreator(getCurrentUserID());                syslogManager.save(syslog);            }        } catch (Exception ex) {            log.error(ex);        }    }    /**     * 獲取當前操作的用戶     *      * @return 用戶ID     */    private Long getCurrentUserID() {        Long userID = 0l;        SecurityContext ctx = SecurityContextHolder.getContext();        if (ctx.getAuthentication() != null) {            Authentication auth = ctx.getAuthentication();            UserDetails user = (UserDetails) auth.getPrincipal();            userID = this.userManager.getUserByUsername(user.getUsername())                    .getId();        }        return userID;    }}
SubmitAdvice

注意,其中有一段是獲取當前登錄用戶的ID的getCurrentUserID。

Syslog是自己定義的存儲日志的數據結構。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩欧美另类| 91av在线播放视频| 97精品国产97久久久久久春色| 亚洲午夜激情免费视频| 91精品国产综合久久香蕉的用户体验| 国产精品久久久久久久久久久久| 精品露脸国产偷人在视频| 在线视频日韩精品| 综合欧美国产视频二区| 国产精品香蕉av| 性色av一区二区三区在线观看| 成人免费视频a| 成人黄色免费看| 亚洲国产一区二区三区在线观看| 国产精品国产自产拍高清av水多| 欧美精品一二区| 国产精品男人爽免费视频1| 欧美一区二区大胆人体摄影专业网站| 欧美亚洲另类视频| 91精品在线观| 伊是香蕉大人久久| 高清视频欧美一级| 姬川优奈aav一区二区| 国产精品入口免费视频一| 亚洲国产精品系列| 国产精品久久久久久久9999| 亚洲精品电影在线观看| 国产精品视频公开费视频| 91亚洲人电影| 这里精品视频免费| 欧美高跟鞋交xxxxhd| 亚洲人线精品午夜| 国产激情久久久久| 亚洲人成网站色ww在线| 欧美在线激情网| 日韩电影大片中文字幕| 中文字幕精品一区二区精品| 久久精品国产99国产精品澳门| 黑人狂躁日本妞一区二区三区| 国产精品一区久久久| 91精品视频在线免费观看| 色婷婷久久一区二区| 97视频在线播放| 亚洲精品电影在线观看| 中文字幕日韩在线观看| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美综合区自拍另类| 久精品免费视频| 国产午夜精品麻豆| 亚洲欧洲在线看| 久久的精品视频| 91九色国产在线| 在线看日韩av| 国产成人亚洲综合| 日韩一区二区欧美| 亚洲a成v人在线观看| 欧美日韩一区二区免费视频| 欧美激情视频播放| 国产自产女人91一区在线观看| 超碰日本道色综合久久综合| 91精品视频免费看| 成人激情视频小说免费下载| 日韩乱码在线视频| 奇米影视亚洲狠狠色| 久久天天躁狠狠躁夜夜爽蜜月| 欧美高清电影在线看| 国产精品一二三视频| 久久精品中文字幕电影| 欧美高清电影在线看| 国产精品久久久| 中文字幕在线亚洲| 国产日韩欧美日韩大片| 精品亚洲aⅴ在线观看| 欧美综合第一页| 久久99亚洲精品| 在线观看视频亚洲| 5278欧美一区二区三区| 日本久久久久久| 一区二区欧美激情| 欧美在线www| 国产成人精品日本亚洲专区61| 亚洲国产精品人久久电影| 久久成人18免费网站| 韩国精品美女www爽爽爽视频| 国产一区香蕉久久| 日韩麻豆第一页| 91精品久久久久久久久中文字幕| 久久久久久久久电影| 久久精品成人动漫| 久久99热精品| 亚洲精品日产aⅴ| 国产精品自拍视频| 国产精品吊钟奶在线| 欧美三级免费观看| 午夜精品一区二区三区在线视| 九九热这里只有精品6| 在线中文字幕日韩| 中文字幕日韩在线视频| 精品高清一区二区三区| 亚洲已满18点击进入在线看片| 欧美国产激情18| 色噜噜久久综合伊人一本| 亚洲国产精品人人爽夜夜爽| 国产欧美 在线欧美| 欧美成在线观看| 欧美精品一区三区| 国产精品视频在线观看| 欧美日韩成人在线播放| 国产精品久久久久久久9999| 欧美成人在线影院| 亚洲国产精品一区二区三区| 精品国产欧美成人夜夜嗨| 国产91对白在线播放| 欧美一区视频在线| 久久精品国产69国产精品亚洲| 欧美成人精品在线| 高跟丝袜欧美一区| 影音先锋欧美在线资源| 欧美性猛交xxxx偷拍洗澡| 色悠悠久久久久| 亚洲欧美日韩精品久久亚洲区| 富二代精品短视频| 国产亚洲视频中文字幕视频| 亚洲第一色在线| 精品性高朝久久久久久久| 亚洲最大福利视频| 91久久久久久久久久| 国产精品稀缺呦系列在线| 亚洲国产91精品在线观看| 久久夜色精品国产亚洲aⅴ| 色久欧美在线视频观看| 国产一区二区丝袜高跟鞋图片| 亚洲欧美在线x视频| 欧美国产精品va在线观看| 伊人久久久久久久久久久久久| 亚洲图片欧洲图片av| 黑人精品xxx一区| 92看片淫黄大片欧美看国产片| 97在线观看免费| 亚洲xxxx在线| 日本久久久a级免费| 亚洲天堂成人在线| 欧美—级a级欧美特级ar全黄| 97人洗澡人人免费公开视频碰碰碰| 国产一区二区三区毛片| 亚洲系列中文字幕| 成人免费观看a| 91老司机精品视频| 欧美性jizz18性欧美| 成年无码av片在线| 国产精品稀缺呦系列在线| 成人在线观看视频网站| 国产精品v日韩精品| 久久亚洲国产成人| 色中色综合影院手机版在线观看| 亚洲最新在线视频| 国产欧美精品日韩精品| 国产欧美精品一区二区三区介绍| 中文字幕日韩在线视频| 欧美成人午夜视频| 在线亚洲午夜片av大片| 国内精品中文字幕| 亚洲欧洲一区二区三区久久| 成人性生交xxxxx网站|